tg-me.com/NetDeveloperDiary/452
Last Update:
День триста семьдесят восьмой. #ЗаметкиНаПолях
ASP.NET MVC 5.
Аннотации и Валидация Данных. Начало
Когда мы говорим о проверке в контексте MVC, мы в первую очередь имеем в виду проверку значений модели. Функции валидации в ASP.NET MVC помогают в этом. Они являются расширяемыми: вы можете создавать собственные схемы проверки, но чаще используется декларативный стиль проверки, известный как аннотации данных.
Аннотации данных - это атрибуты в основном из пространства имен System.ComponentModel.DataAnnotations
, которыми помечаются свойства модели. Это обеспечивает проверку на стороне сервера, но платформа также поддерживает проверку на стороне клиента. Большинство атрибутов валидации имеют необязательный параметр ErrorMessage
, хранящий сообщение об ошибке, которое получит пользователь.
Основные атрибуты валидации данных
Required – обязательное поле:
[Required(ErrorMessage="Пожалуйста, введите имя")]Range – диапазон допустимых значений. Граничные значения включаются. Перегруженная версия принимает тип и две строки, что позволяет задать числа с точкой или даты:
[Range(100,500,ErrorMessage="Введите корректное число")]StringLength – максимальная (необязательно – минимальная) длина строки:
[Range(typeof(decimal), "0.00", "49.99")]
[StringLength(30, MinimumLength=3)]RegularExpression – регулярное выражение для проверки, например, e-mail адреса:
[RegularExpression(@"^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$")]Compare – принимает имя другого свойства модели и проверяет значения на равенство (например, для проверки равенства введённых паролей при регистрации):
[Compare("Password")]Remote – позволяет выполнять валидацию на стороне клиента при помощи обратного вызова на сервер. Принимает имя метода действия и контроллера:
[Remote("CheckUserName", "Account")]Следующие аннотации позволяют помощникам HTML
EditorFor
или LabelFor
правильно отображать свойства модели в представлении:Display – «дружелюбное» к пользователю имя свойства для отображения:
[Display(Name="Название")]DataType – тип данных для отображения:
[DataType(DataType.Text)]DisplayFormat – формат данных для отображения:
[DisplayFormat(DataFormatString = "{0:dd.MM.yyyy}")]HiddenInput – сообщает, что это свойство нужно отобразить как скрытое поле.
ReadOnly – запрещает связывателю модели изменять значение свойства, но
EditorForModel
всё равно отобразит свойство как поле для ввода:[ReadOnly(true)]ScaffoldColumn – скрывает свойство от HTML помощников
EditorForModel
и DisplayForModel
. Однако, связыватель модели всё равно постарается задать ему значение, если найдёт соответствующий параметр в запросе.[ScaffoldColumn(false)]Источник: Jon Galloway “Professional ASP.NET MVC 5”. – John Wiley & Sons Inc., 2014. Глава 6.
BY .NET Разработчик
Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283
Share with your friend now:
tg-me.com/NetDeveloperDiary/452