АСП.НЕТ:Синхронизация правил проверки на стороне клиента и сервера

StackOverflow https://stackoverflow.com/questions/100919

  •  01-07-2019
  •  | 
  •  

Вопрос

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

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

На стороне сервера у нас есть веб-формы ASP.NET или ASP.NET MVC.

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

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

И так далее.

Это было полезно?

Решение

Вы можете попробовать использовать Проверка корпоративной библиотеки с интеграцией ASP.NET.

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top