1

MVC Foolproof Validation ライブラリを使用して、依存する要件を作成しています。

public bool IsRequired { get; set; }
[RequiredIfTrue("IsRequired", ErrorMessage = "This field is required")]
public int RequiredIfTrueSelectID { get; set; }

これはクライアント側で完全に機能し、RequiredIfTrueSelectID値なしでフォームを送信できます (つまり、値は 0) が、 false[HttpPost]ModelState.IsValid返され、即時ウィンドウに次の結果が表示されます。

myViewModel.IsRequired 
   true
ModelState["RequiredIfTrueSelectID"].Errors[0]
  {System.Web.Mvc.ModelError}
    ErrorMessage: "A value is required."
    Exception: null

RequiredIfTrueSelectID の値をポストバックしていることを確認しています (上記の最初の即時ウィンドウ クエリでわかるように)。「値が必要です」というメッセージが表示されるのはなぜですか? また、このエラーを抑制するにはどうすればよいですか?

ちなみに私はMVC5です。ModelState2 年前の Foolproof の最後の更新以降、実装が変更された可能性がありますか? 最近公開された、フールプルーフのように機能するライブラリを知っている人はいますか?

コントローラーの方法:

[HttpPost]
public virtual ActionResult ValidationTest(TestViewModel vm)
{ //breakpoint here to check ModelState.IsValid
    return View(vm); 
}
4

1 に答える 1