2016-05-08 9 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コントローラはこの 'Public ActionResult Create(ViewModelCreate viewModel)'のようになり、viewModel.ImageUrlはnullです。 – VSB

0

は、次のようにモデルオブジェクト上のImageUrlプロパティに見えることを確認してください:

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

そして、あなたのビューで、ちょうどeditorfor HTMLを使用しますヘルパーは通常通り

@Html.EditorFor(m => m.ImageUrl) 
関連する問題