MVC 5アプリ....モデルの検証 - にModelStateが無効
私は多くの分野でモデルを持っている...それらの2がある...(これはモデルです)
する原因eventDateStartedとeventDateCompletedフィールドがnullではないされていない限り、public string eventStatus {get; set;}
public DateTime? eventDateStarted {get; set;}
public DateTime? eventDateCompleted {get; set;}
私は何をしたいeventStatusは、「クローズ」に設定することはできません。そうであれば、無効なModelStateになります。
ここにはプログラミングルールが含まれていますが、これはビジネスルールに基づいてさらに高度化する可能性があります。したがって、このフィールドが設定されるためには、このフィールドが必要であるということだけではありません。
私は、このロジックを配置する最適な場所がeventStatusの設定メソッドにあると考えていました。これはベストプラクティスの解決策ですか?もしそうなら、どうすればModelStateを無効にすることができますか?
これは私がこれまで書いてきたものを...
[Display(Name = "Status")]
public string eventStatus
{
set
{
if (EventActualEnd is null || EventActualStart is null)
{
ModelState.AddModelError("Status", "Start and End date is mandatory");
}
}
}
である。しかし、それはAddModelErrorが好きではありません。
[別のフィールドに依存する属性]の可能な複製(http://stackoverflow.com/questions/3713281/attribute-dependent-on-another-field) –
条件付き検証属性を作成します。良いガイドについては、[ASP.NET MVC 3での検証の完全ガイド - 第2部](http://www.devtrends.co.uk/blog/the-complete-guide-to-validation-in-asp)を参照してください。 .net-mvc-3-part-2) –