MVC應用5 ....模型驗證 - 造成的ModelState是無效
我有許多領域的典範......他們的2 ...
(這是模型。)public string eventStatus {get; set;}
public DateTime? eventDateStarted {get; set;}
public DateTime? eventDateCompleted {get; set;}
我想要做的就是絕不允許eventStatus設置爲「Closed」,除非eventDateStarted和eventDateCompleted字段不爲空。如果是這樣,則會導致無效的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) –