在我的模型我有一個是通過以下方式標註的某一特定領域:爲什麼MVC 3驗證覆蓋我的?
[DataType(System.ComponentModel.DataAnnotations.DataType.Text)]
[RegularExpression("[0-9]{1,10}", ErrorMessage = "The stated Attempt Id is invalid!")]
public long? AttemptId { get; set; }
當我在嘗試ID輸入不正確的數據它給我的模型狀態出現以下錯誤信息:
The value 'cbcbxcb' is not valid for AttemptId.
我有其他領域有類似的錯誤消息,但他們的字符串類型而不是長?並在出現無效值的情況下顯示正確的錯誤消息。爲什麼不是「長」的信息?正在使用?我在頁面中使用folowing文字標記顯示我的錯誤。
<%: Html.TValidationSummary() %>
編輯:我曾嘗試在模型中更改驗證以下內容:
[Required(ErrorMessage="The stated Attempt Id is invalid!", AllowEmptyStrings=true)]
然而,這仍是不正確。首先,我需要讓該字段保持空白,當我這樣做時,它會給我「所述的嘗試標識無效!」。錯誤信息。其次,當我在字段中輸入無效數據時,它將恢復爲舊的錯誤消息。
感謝您的回答。現在訣竅是該特定字段不是真正必需的字段,因此用戶應該允許將其保留爲空。有沒有辦法做到你的建議,而不是將其綁定爲「必需」? – 2012-04-24 11:05:18
我將驗證更改爲'[必需(ErrorMessage =「聲明的嘗試標識無效!」,AllowEmptyStrings = true)]',現在它顯示錯誤消息,如果留空(它不應該)並仍然顯示錯誤錯誤消息eif無效。 – 2012-04-24 11:26:58
已經編輯過,如果你的參數是非強制性的,提供了一個替代解決方案 – DaveRead 2012-04-24 12:19:52