ASP.NET MVC Настройка сообщения об ошибке для конкретного числового свойства (DataAnnotations?) - PullRequest
0 голосов
/ 06 марта 2012

У меня есть свойство модели OrderNumber с типом double?и я хочу изменить значение по умолчанию «Значение abc недопустимо для номера заказа».сообщение об ошибке, генерируемое при вводе для него буквенно-цифровых (или других недействительных) данных, однако я хочу сделать это только для свойств OrderNumber в моем объекте модели.Я попытался использовать аннотацию данных регулярного выражения, но это работает (в отношении пользовательского сообщения об ошибке) при проверке на стороне клиента, так как на стороне сервера происходит сбой данных в типе данных базового свойства (не являетсяdouble?) до того, как вступит в силу аннотация regex. Для некоторых форм у нас много входных объектов, и поэтому мы должны отключить сценарии на стороне клиента, так как это вызывает проблемы со скоростью, плюс для некоторых наших клиентов сценарии отключены, поэтому нам нужночтобы это пользовательское сообщение об ошибке работало на стороне сервера.Как установить пользовательское сообщение об ошибке, если введенный тип данных неверен?

Это также должно быть совместимо с локализацией (например, моя аннотация метки дисплея имеет вид [Display (ResourceType = typeof (Localisation.Resources), Name = "OrderNumberLabel")])

1 Ответ

0 голосов
/ 06 марта 2012

Этого можно достичь, установив свойство DefaultModelBinder ResourceClassKey,

Создайте папку «App_GlobalResources» в вашем приложении и добавьте файл ресурса.(давайте назовем его «MyResource.resx»).

Теперь добавьте ключ «PropertyValueInvalid» и назначьте свой errorTemplate. (например, «Недопустимое содержимое {0} для свойства {1}»).

Это должно выглядеть следующим образом: *

enter image description here

Теперь добавьте следующую строку в «Application_Start» в global.asax

DefaultModelBinder.ResourceClassKey = "MyResource";

Теперь вы увидитенастраиваемая ошибка. (для не JS)

enter image description here

...