Как стать автором
Обновить

Комментарии 13

Очень и очень вкусная фича. Вообще, декларативный подход рулит и чем больше проект — тем больше нервов и времени он сохраняет.
Такое ощущение что разработчики ASP MVC вдохновляются спрингом :)
В самом начале есть поле Age-возраст.
Да, там есть проверка, что значение не должно быть меньше нуля. Но что если пользователь введёт туда буквы? На сколько я помню, там либо выскакивает исключение (это если значение отображается прямо на параметр контроллера, например, с типом int), либо, как в статье, там будет сообщение на английском языке, которое нет возможности изменить или вообще как-то повлиять на него.
Как тут быть, может кто-нибудь знает?
попробуйте сделать как с Email — через RegExp.
При чём тут RegExp, в модели свойство имеет тип int, а приходит строка, поэтому MVC строку конвертирует в int. Это делается на этапе биндинга, до валидации и я просто не понимаю, как быть в таких случаях…
Накопал ответ:
1 – создаете в папке App_GlobalResources ресурс Messages.resx (ну или любой другой)
2 – в Application_Start() добавляете строчку: DefaultModelBinder.ResourceClassKey = «Messages»;
3 – в ресурс Messages добавляете «PropertyValueInvalid» — «Значение {0} не подходит для поля {1}»

Завтра ещё поковыряю… разберусь как именно это работает и где достать все id фраз.
Именно там я это и нашёл…
а в вашем топике как-то не получилось :)
Либо я никогда не читаю курсив, либо курсив случился уже после того, как я прочитал.
Прости меня, jeje ))
нет… вру… не там я нашёл. про захардкореный PropertyValueInvalid там ни слова :)
DataAnnotation позволяют, в легкий способ — калька с английского.
А в общем перевод неплох, спасибо за статью.
Спасибо за статья. Очень полезная.
У меня возник вопрос, а как можно сделать валидацию по модели, которая является динамическим списком?
Оно? 1, 2
Да, наверное оно, спасибо.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории