2010-10-21 35 views
2

我創建了一個實現IModelBinder接口的類。在該類的一個方法中,我基本上檢索一些值並嘗試驗證它們。如果驗證失敗,我添加更新必要的信息模型的狀態象下面這樣:ValidationMessageFor在調用modelState.AddModelStateError時不返回任何信息

 DateTime mydate; 
     if (!DateTime.TryParse(convValue,out mydate)) 
     { 
      bindingContext.ModelState.AddModelError("Date", "Date was crap"); 
     } 

的問題是,Html.ValidationMessageFor(M => m.Model)無返回值。我查看了MVC源代碼,發現在ModelState字典中找不到ID爲「Date」的正確密鑰。

這是爲什麼?返回視圖控制器訪問模型狀態,可以枚舉ModelState.Errors

感謝, 托馬斯

回答

0

是「日期」您要驗證的屬性的名稱?

ModelState.AddModelError的第一個參數應該是要驗證消息顯示的屬性的名稱,或者保留爲string.Empty,如果您只希望在驗證摘要中顯示錯誤。

如果要顯示與視圖模型的特定屬性無關的錯誤消息,可以在視圖中調用<%:Html.ValidationMessage(「Date」)%>以顯示該特定消息if它已被設置。

編輯:剛纔意識到這個問題有多大。好吧,無論如何可能會派上用場......

相關問題