2010-11-18 102 views
2

我正在为包含子模型集合(文档包含许多LocalizedDocuments)的MVC模型的强类型编辑表单工作。每个文档可以包含0个,1个或多个本地化文档,每个本地化文档都有一个输入类型=“文件”,以允许用户上传文件的新版本。ASP.NET MVC多文件上传

要呈现每个LocalizedDocument的编辑字段,我有一个强类型局部视图,其中包含LocalizedDocument的字段,然后在我的编辑视图中使用Html.EditorFor(model => model.Document.LocalizedDocuments)

当发布表单时,如预期的那样,每个LocalizedDocument字段都以LocalizedDocument [i]作为前缀。但是,如何获取它,因此文件输入也带有LocalizedDocument [i]前缀,因此我可以将文件上载与相应的LocalizedDocument关联?

回答

0

告诉我,如果我解释这个问题是错误的。您需要上传属于父表的文档,或者需要在上传多个文档后将这些文档分配给特定的ID?

我将使用Uploadify。您将不得不知道LocalizedDocument的Id。您也只能一次上传1个。 (每个文件是一个单独的服务器调用)

首先,您必须将LocalizedDocument的Id分配给将发送到服务器的数据。

<script type="text/javascript"> 
var auth = "<%: Request.Cookies[FormsAuthentication.FormsCookieName]==null ? string.Empty : Request.Cookies[FormsAuthentication.FormsCookieName].Value %>"; 
var ASPSESSID = "<%: Session.SessionID %>"; 

$(document).ready(function() { 
    $('#file_upload').uploadify({ 
     'uploader': '/Content/uploadify.swf', 
     'script': '<%: Url.Action("Upload", "Documents") %>', 
     'cancelImg': '/Content/Images/cancel.png', 
     'folder': '/uploads', 
     'scriptData': { ASPSESSID: ASPSESSID, AUTHID: auth, DocumentId: <%: Model.LocalizedDocumentId %>}, 
     'auto':true, 
     'multi': true 
    }); 
}); 
</script> 

控制器:

public ActionResult InsertImages(HttpPostedFileBase FileData, int DocId){ }