1

アプリケーションの画像アップロード子アクション フォームを実装しました。強く型付けされた部分ビューがあります。

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 コレクションに含まれています。ただし、モデル バインドでは、これらのフィールドの値がプロパティに設定されていません。これらの非表示のフィールドについて見逃しているものはありますか?

ありがとう

4

0 に答える 0