建议ActionResult上传多个文件

时间:2013-12-12 16:37:51

标签: c# asp.net-mvc model-view-controller actionresult

我有以下情况:

用户可以上传多个文件的文档视图。一个(Document)到很多(文件)的关系。所有这些文件都通过其IDDocument属性“在文档内”。

用户将上传大量的.xml文件,每个文件上传都会在我的控制器中触发该操作:

    [HttpPost]
    public ActionResult ProcessSubmitUpload(HttpPostedFileBase attachments, Guid? idDocument)
    {
        //Validations
        var xmlDocument = XDocument.Load(attachments.InputStream);
        if (xmlDocument.Root.Name.LocalName == "cteProc")
        {
             if (DocumentCommonHelper.SendXmlViaWebService(xmlDocument))
             {                  
                      _documentRepository.UpdateDocumentStatus(StatusOption.DocumentApproved);
             }
             else
             {
                      _documentRepository.UpdateDocumentStatus(StatusOption.DocumentPending);
             }
         }
   }     

逻辑是:如果DocumentCommonHelper.SendXmlViaWebService(xmlDocument)中的所有文件都正确,则文档状态必须为“已批准”。但是,如果一个文件失败,则文档状态必须为Pending。

问题是此代码中的方法是错误的。因为每次执行Action时它都会改变文档的状态,伪造之前传递的其他HttpPostedFileBase。

最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

尝试在会话中存储HttpPostedFileBase并在需要时将其恢复回来

Session["HttpPostedFileBase"] = attachments;