Я использую 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); %>
Hi Андраш, спасибо за предложения. Я знал об использовании строки в качестве типа данных, но в этом случае мне действительно нужно сохранить тип данных как есть, и я не могу использовать хакерские методы. Это решение мне нужно применить к большому проекту, который потребует постоянной поддержки. –
К сожалению, вам придется взглянуть на повторную работу «DefaultModelBinder» - так как я считаю, что это сообщение об ошибке проверки. Вы говорите, что это действительно нужно хранить как 'int'; но, по моему опыту, вы должны быть более гибкими в своих типах моделей; если вы не хотите писать много настраиваемого кода. Во всяком случае - с моим обновленным кодом вы даже не заметите разницы на заднем плане ... –
@WilliamCalleja жаль, что я написал свой комментарий перед обновлением кода, думая, что буду быстро ... Он обновляется. Не менялся ответ, хотя я боюсь. –