MVC3アプリケーションに「作成」ページがあり、すべて必須の4つの入力フィールドがあります。また、これら4つのフィールドのうち3つを編集できる「編集」ページもあります。4番目のフィールドを表示せず、初期値を維持したい(フィールドはエントリが作成された日付です)。
モデルで4番目のフィールドを[必須]としてマークすると、編集フィールドのアクション後のメソッドでモデルが無効として宣言されます。[必須]アノテーションを省略すると、誰かがこの4番目のフィールドにnull値を持つユーザーを作成できます。
この問題を回避するにはどうすればよいですか?
モデルコード:
[Required]
[DisplayName("User Name")]
public string UserName { get; set; }
[Required]
public string Role { get; set; }
[Required]
[DataType(DataType.Date)]
[DisplayName("Insert Date")]
public DateTime? InsertDate { get; set; }
[Required]
[DisplayName("Active")]
public bool ActiveInd { get; set; }
コントローラーコード:
public ActionResult Edit(int id, ZUserRoleModel mod)
{
if (ModelState.IsValid)
{
// code removed
return RedirectToAction("Index");
}
return View(mod);
}