ViewModelを使用しているときに値がコントローラに返されています。MVC ViewModelからArgumentNullExceptionが返される
わかりやすくするために、元のフィールドがさらに多くなっているところで、以下のコードを簡略化しました。
ページが読み込まれると、非表示フィールドの値が期待どおりになります。しかし、フォームが送信されると、フィールドの値は送信されず、代わりにArgumentNullExceptionが返されます。
私が間違っていることについて助言してもらえますか?
ビュー
@model Project.Models.SCView
@using (Html.BeginForm("ScorecardEdit"))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
@Html.HiddenFor(model => model.FV.ID)
<input type="submit" value="Save" />
}
モデル
public class FixView
{
public int ID { get; set; }
[DisplayFormat(DataFormatString = "{0:ddd dd/MM/yyyy}")]
public DateTime MatchDate { get; set; }
}
public class SCView
{
public FixView FV { get; set; }
public SCView()
{
this.FV = new FixView();
}
}
コントローラ
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult ScorecardEdit(SCView ReturnSC)
{
}
あなたはSCViewをサーバーに投稿していません。あなたは整数を投稿しています。 – mason
@masonありがとうございますが、分かりません。この男(http://stackoverflow.com/questions/27191691/viewmodel-returns-null-on-postback-mvc-5)はエラーなしでプロパティを更新するために同じフォーマットを使用することができました。 – Xtravia9
ビューに日付入力を追加し、 'SCView'の代わりに' FixView'を受け入れるようにアクションメソッドを変更してください。 – mason