2016-05-08 47 views
0

我想添加上傳文件字段在我的視圖。 我編輯了我的ViewModel並在其下面添加了一行: public HttpPostedFileBase ImageUrl {get;組; } 然後我在下面的輔助文件上傳:ASP.NET MVC:視圖不能很好地用於文件上傳

 @Html.EditorFor(model => model.ImageUrl) 

我也改變了我的形式幫助像這樣:

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

但是它顯示了文件的內部字段,當我跑我的觀點:

enter image description here

我錯過了導致這種情況的原因?

回答

0

使用TextBoxFor輔助方法。

@using (Html.BeginForm("Create", "Home", FormMethod.Post, 
              new { enctype = "multipart/form-data" })) 
{ 
    @Html.TextBoxFor(s=>s.ImageUrl,new { type="file"}) 
    <input type="submit" /> 
} 

甚至純HTML

@using (Html.BeginForm("Create", "Home", FormMethod.Post, 
               new { enctype = "multipart/form-data" })) 
{ 
    <input type="file" name="ImageUrl" /> 
    <input type="submit" /> 
} 
+0

我做不知道爲什麼這將在我的ViewModel中返回null?我的httppost控制器看起來像這個'公衆的ActionResult創建(ViewModelCreate viewModel)'和viewModel.ImageUrl爲空。 – VSB

0

讓你的模型對象確保您的ImageUrl屬性如下所示:

[DataType(DataType.Upload)] 
public HttpPostedFileBase ImageUrl { get; set; } 

然後,在你看來,只需使用editorfor HTML幫手按正常

@Html.EditorFor(m => m.ImageUrl)