2016-03-31 11 views
1

ファイル入力のフォームがありますが、モデルが検証されなかったりエラーが発生した場合、添付ファイルに関する情報が失われ、ユーザーはファイルを再度アップロードする必要があります。他の入力は問題ありませんが、ファイルは機能しません。フォームのリフレッシュが発生すると、multipart/form-dataが失われます

ビュー

@using (Html.BeginForm("Create", "Person", FormMethod.Post, new { enctype = "multipart/form-data" })) 
{ 
    @Html.LabelFor(m => m.AttachmentFile) 
    @Html.TextBoxFor(m => m.AttachmentFile, new { type = "file" }) 
    @Html.ValidationMessageFor(m => m.AttachmentFile) 

    <input type="submit" value="Submit" /> 
} 

コントローラ

[HttpPost] 
public ActionResult Create(CreateVM model) 
{ 
         try 
         { 
          if (ModelState.IsValid) 
          { 
           // adding to db 
          } 
         } 
         catch (Exception ex) 
         { 
          ModelState.AddModelError(String.Empty, String.Format("Error : {0}", ex.Message)); 
         } 

    return View(model); 
} 

答えて

1

ブラウザは、value属性またはJavaScriptを介して、いずれかのファイル入力フィールドに値を指定して防ぎます。

これは、悪意のあるコードが値(パス)を設定してローカルファイルにアクセスしないようにするセキュリティ対策です。

+1

ああ、ありがとう、私はちょうどjavascriptを書くようになった:-)) – Muflix

関連する問題