2011-04-19 55 views
4

我有一个视图,我在其中添加产品到一个简单的WebStore。我想用一种产品制作多个图像。这就是为什么我使用Microsoft.Web.Helpers的FileUpload。在我看来,使用文件上传的是这样的:Asp.Net MVC Razor FileUpload Html Helper到现有的视图

@FileUpload.GetHtml("Upload", 5, true, true, addText: "Add more", uploadText: "Upload files") 

然后我有其他的产品attributs一些标签和字段是这样的:

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

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

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

    return RedirectToAction("Index"); 
} 

所以没有人有任何想法我做错了什么。因为我的FileUpload对象总是空的。

回答

14

很可能您的BeginForm缺少必填字段。它应该是这样的:

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

} 
0

我有这个问题,昨晚FileUpload控制和参数名称应该是相同的

变化:

public ActionResult Create(Product product, IEnumerable<HttpPostedFileBase> **fileUpload**) 

public ActionResult Create(Product product, IEnumerable<HttpPostedFileBase> **upload**)