我正在使用ASP.NET C#MVC2和我有以下數據註釋驗證模型中的以下字段屬性:如何刪除MVC2的驗證消息?
[DisplayName("My Custom Field")]
[Range(long.MinValue, long.MaxValue, ErrorMessage = "The stated My Custom Field value is invalid!")]
public long? MyCustomField{ get; set; }
在表單這個領域應該允許用戶留空並顯示驗證消息應該是用戶嘗試輸入一個不能用數字表示的值。從驗證的角度來看,這是按預期工作並顯示以下錯誤消息:
聲明的我的自定義字段值無效!
「我的自定義字段」字段必須是數字。
第一個驗證消息是我編寫的自定義驗證消息,第二個驗證消息是MVC2自動生成的消息。我需要擺脫第二個,因爲它是多餘的。我該怎麼做呢?在我看來,我有以下的標記
<% Html.EnableClientValidation(); %>
<% using (Html.BeginForm())
{ %>
<%:Html.ValidationSummary(false)%>
<% Html.ValidateFor(m => m.MyCustomField); %>
嗨安德拉斯,感謝您的建議。我知道使用字符串作爲數據類型,但在這種情況下,我確實需要保持數據類型,我不能使用哈希方法。我需要將此解決方案應用於需要不斷支持的大型項目。 –
不幸的是,那麼你必須考慮重新使用'DefaultModelBinder'--因爲我認爲這是驗證消息的起源。你說它確實需要保存爲'int';但根據我的經驗,您應該準備好在您的模型類型上更加靈活;除非你想寫很多自定義代碼。無論如何 - 我更新的代碼,你甚至不會注意到在後端的差異... –
@WilliamCalleja對不起,我更新代碼之前寫了我的評論,認爲我會很快...現在更新。雖然我很害怕,但這並不是一個改變的答案。 –