Клиент / сервер проверяет общие типы данных (адрес электронной почты) с ASP.NET MVC - PullRequest
1 голос
/ 11 июля 2011

Какой предпочтительный метод (тот, который имеет минимальный пользовательский код и в идеале переносим на запланированные будущие версии MVC без дополнительных виджетов) для проверки общих типов данных (например, адресов электронной почты, дат, телефонных номеров) как на клиенте, так и на клиенте?сервер?


МОИ ИССЛЕДОВАНИЯ

Я собираюсь перечислить несколько методов, которые я видел, примерно от худшего к лучшему (ИМХО).В настоящее время я использую последний метод в списке.Я сосредоточусь на проверке электронной почты в этом посте, чтобы все было понятно.

РЕГИСТРАЦИЯ И / ИЛИ ТАМОЖЕННАЯ АТРИБУТА ВАЛИДАЦИИ

Я знаю, что проверка JQuery включает в себя некоторые общиеТипы данных, включая электронную почту, и дополнительные плагины существуют для загрузки (например, целое число, максимум слов).Так что пользовательские регулярные выражения здесь не правильный ответ.

Я знаю, как написать собственный валидатор с нуля на сервере и клиенте и даже «адаптировать» существующее клиентское правило к пользовательскому атрибуту при использованииненавязчивый разъем.http://bradwilson.typepad.com/blog/2010/10/mvc3-unobtrusive-validation.html но, вероятно, не имеет смысла для такого распространенного типа, как адрес электронной почты.

И, возможно, расширять правило регулярного выражения в соответствии с: http://www.pagedesigners.co.nz/2011/02/asp-net-mvc-3-email-validation-with-unobtrusive-jquery-validation/

ПЕРЕИГРЫВАЮЩАЯ СТОКОВАЯ ВАЛИДАТОРЫ АТРИБУТА DataType

.NET включает [System.ComponentModel.DataAnnotations.DataType (DataType.EmailAddress)] Это вызывает всегда успешную проверку на клиенте или сервере, и этодействительно полезно только из коробки для тангенциальной цели форматирования отображаемых строк.Переопределение всегда успешной проверки возможно в соответствии с: http://weblogs.asp.net/srkirkland/archive/2011/02/15/adding-client-validation-to-dataannotations-datatype-attribute.aspx

РАСШИРЕНИЕ ВАЛИДАЦИИ ДАННЫХ MVC (VIA NUGET)

Загружаемое расширение проверки NuGet было выпущено несколькомесяцев назад, и я в настоящее время использую его, но я был удивлен, увидев, что он не использует существующее перечисление DataAnnotations.DataType.Это заставляет меня задуматься, есть ли какое-то расхождение в развитии, которого я должен здесь избегать.http://weblogs.asp.net/srkirkland/archive/2011/02/23/introducing-data-annotations-extensions.aspx Кроме того, он не включает номера телефонов или номера телефонов в США.

Есть ли лучший способ?

1 Ответ

2 голосов
/ 11 июля 2011

Знаете ли вы об атрибутах проверки фьючерсов ASP.NET MVC 3, http://weblogs.asp.net/imranbaloch/archive/2011/02/05/new-validation-attributes-in-asp-net-mvc-3-future.aspx

...