Asp.Net MVC Razor FileUpload Html Helper进入现有View

Mat*_*iba 4 asp.net-mvc html-helper file-upload razor asp.net-mvc-3

我有一个View,我将产品添加到一个简单的WebStore.我希望一个产品有多个图像.这就是我使用Microsoft.Web.Helpers的FileUpload的原因.在我的View中使用FileUpload是这样的:

@FileUpload.GetHtml("Upload", 5, true, true, addText: "Add more", uploadText: "Upload files")
Run Code Online (Sandbox Code Playgroud)

然后我有一些其他产品属性的标签和字段,如下所示:

<div class="editor-field"><br>
    @Html.EditorFor(model => model.Title)<br>
    @Html.ValidationMessageFor(model => model.Title)<br>
</div>
Run Code Online (Sandbox Code Playgroud)

问题是当我使用post方法时,我的控制器没有得到任何东西.我使用这样的控制器:

[HttpPost]
public ActionResult Create(Product product, IEnumerable<HttpPostedFileBase> fileUpload)
{
    foreach (var file in fileUpload)
    {
        var fileName = Path.GetFileName(file.FileName);
    }

    return RedirectToAction("Index");
}
Run Code Online (Sandbox Code Playgroud)

那么有谁知道我做错了什么.因为我的FileUpload对象总是空的.

Bui*_*ted 14

很可能你BeginForm缺少必填字段.它应该如下所示:

using(Html.BeginForm("Index", "Home", FormMethod.Post, 
    new { enctype="multipart/form-data" })) { 

}
Run Code Online (Sandbox Code Playgroud)


Sen*_*der 5

现在使用HttpPostedFileBasemvc 4轻松上传多个文件,在asp.net mvc 4 razor中使用EditorFor FileUpload