ASP.NET: синхронизация правил проверки на стороне клиента и на стороне сервера

Есть ли простые и разумные способы синхронизации правил проверки на стороне клиента и на стороне сервера?

На стороне клиента у нас есть JavaScript, может быть, какой-то фреймворк вроде jQuery или YUI.

На стороне сервера у нас есть ASP.NET WebForms или ASP.NET MVC.

Проверяются такие вещи, как:

  • Правильные адреса электронной почты
  • Правильные домашние адреса и почтовые индексы
  • Правильные номера кредитных карт

И так далее.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
8
0
2 528
5

Ответы 5

<asp: RegularExpressionValidator ...> (и другие валидаторы asp.net) реализуют проверку JavaScript на стороне клиента и проверку на стороне сервера по одним и тем же правилам.

Какая проверка на стороне сервера это делает? И как это работает с ASP.NET MVC.

Seb Nilsson 19.09.2008 18:43

Все валидаторы в ASP.NET работают как на стороне клиента, так и на стороне сервера, потому что выполнение только проверки клиента было бы огромной дырой в безопасности. Я не пробовал использовать валидаторы в MVC.

Brad Wilson 30.09.2008 20:54

напишите большой общий корпус тестовых данных, который воплощает правила проверки, и выполните модульное тестирование ваших валидаторов на основе этих общих данных.

Когда ваши правила меняются, вы отражаете это, обновляя тестовые данные и тестируя, пока все снова не станет зеленым.

Я всегда использовал встроенные валидаторы. Например, если вы используете RegularExpressionValidator и предоставляете ValidationExpression, он будет проверять на стороне клиента (если доступно) и на стороне сервера с использованием одного и того же кода.

Вы можете написать свои собственные валидаторы, производные от BaseValidatior. Это позволяет вам создать проверку сервера, переопределив EvaluteIsValid. Затем вы можете добавить проверку клиента позже, если это необходимо.

Это не реальное решение, но посмотрите Осевой проект на CodePlex. Это проект, который преобразует C# в Javascript для Интернета и имеет элемент управления, позволяющий использовать один и тот же код для проверки на стороне сервера и проверки на стороне клиента. Он не готов к производству, но мне любопытно узнать, это то, что вы ищете.

xVAL немного проще, чем проверка корпоративной библиотеки, и выполняет проверку привязки к модели как для клиента, так и для сервера.

Другие вопросы по теме