ASP.NET MVC多文件上传

时间:2010-11-18 20:51:54

标签: asp.net-mvc-2

我正在为MVC模型编写一个强类型的编辑表单,其中包含一组子模型(Document包含许多LocalizedDocuments)。每个文档可以包含0,1或许多本地化文档,每个本地化文档都有一个输入类型=“文件”,以允许用户上载该文件的新版本。

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

发布表单时,我的每个LocalizedDocument字段都以LocalizedDocument [i]为前缀,如预期的那样。但是,我怎样才能获得它,因此文件输入也带有LocalizedDocument [i]的前缀,所以我可以将文件上传与相应的LocalizedDocument联系起来?

1 个答案:

答案 0 :(得分: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){ }
相关问题