アプリケーションの画像アップロード子アクション フォームを実装しました。強く型付けされた部分ビューがあります。
public class ImageViewModel{
public long ImageId{get;set;}
public long OwnerId{get;set;}
public string ImageName{get;set;}
public string ImageDescription{get;set;}
public IEnumerable<HttpPostedFileBase> Files { get; set; }
}
Razor コードは次のようになります。
<form action="UploadImage" method="post" enctype="multipart/form-data">
@Html.ValidationSummary()
@Html.HiddenFor(m => m.OwnerId)
@Html.HiddenFor(m => m.ImageId)
@HtmlEditorFor(m=>m.ImageName)
<input type="file" name="Files" id="file0" />
<input type="submit" value="Upload" />
</form>
これが問題です。フォームがポストバックされると、モデルはファイルとその中に ImageName 値をアップロードしました。しかし、HiddenFor を使用してバインドされた値が欠落しています。
[HttpPost]
public ActionResult UploadImage(ImageViewModel model)
{ ...}
HTMLソースを確認しました。非表示のフィールドは、モデルの名前のプロパティに一致する ID と名前で修正されてレンダリングされます。ポストバックで、生のリクエストを確認しました。両方の非表示フィールドは Form コレクションに含まれています。ただし、モデル バインドでは、これらのフィールドの値がプロパティに設定されていません。これらの非表示のフィールドについて見逃しているものはありますか?
ありがとう