Ошибка проверки клиента 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] для числового типа в любом случае избыточен.


У вас, вероятно, есть несколько валидаторов модели, которые добавляют одно и то же правило клиента дважды, вы используете пользовательский поставщик проверки?


Required станет дубликатом с Mark не может быть null. Я бы изменил его на decimal?