以下のようなビューモデルで検証をセットアップしました。
[Required(ErrorMessage = "This field is required.")]
[StringLength(25, MinimumLength = 6)]
[DataType(DataType.Password)]
public string Password { get; set; }
[DataType(DataType.Password)]
[System.Web.Mvc.CompareAttribute("Password", ErrorMessage = "Password must be the same")]
public string ConfirmPassword { get; set; }
フォームを送信するModelState.IsValid
と、有効でないかどうかを確認してから元のビューを返しますが、これを行うと、モデルにあった元のデータが失われます。
[HttpPost]
public ActionResult Form(MemberAddViewModel viewModel, string returnUrl)
{
if (ModelState.IsValid)
{
...
}
return View("Form", viewModel);
}
viewModel
が元に戻されることを期待してView
いましたが、ビューに取り込まれたモデル アイテムのみが表示されているようです。このためのベストプラクティスは何ですか? 非表示のフィールド/セッション データ?