Ошибка проверки клиента Unobstructive
Я использую asp.net mvc 3 и я продолжаю получать следующую ошибку.
имена типов проверки в ненавязчивом правила проверки клиента должны быть уникальный. Следующий тип проверки видели не раз: номер
Я понятия не имею как у меня это
@Html.TextBoxFor(x => x.Mark)
/ / моя viewmodel
[Required(ErrorMessage = "Message")]
[Number(ErrorMessage = "Message")]
public decimal Mark { get; set; }
Если я изменю его с десятичного на строковый, он не будет жаловаться. Что происходит о?
редактировать
Я думаю, это из-за этого [Number(ErrorMessage = "Message")]
Примечание. Я использую эту библиотеку расширения аннотаций данных
похоже, что я не использую десятичные дроби. Кто-нибудь знает почему?
3 ответов
Если вы используете тип decimal, вам не нужно использовать атрибут [Numeric], потому что MVC уже видит, что вы используете числовой тип, и вводит его для вас (что вызывает ошибку). Когда вы переходите к строке, [Numeric] затем необходимо сообщить проверке, как вы хотите, чтобы эта строка работала.
в следующей версии DataAnnotationsExtensions я изменю атрибут [Numeric], чтобы он не сталкивался с версией MVC в этом случае. Но на данный момент, удаление атрибут [Numeric] будет просто прекрасным, потому что [Numeric] для числового типа в любом случае избыточен.
У вас, вероятно, есть несколько валидаторов модели, которые добавляют одно и то же правило клиента дважды, вы используете пользовательский поставщик проверки?