Клиентская проверка для серверных элементов управления ASP.NET
Обновлен: Ноябрь 2007
При работе с обозревателем, поддерживающим динамический HTML (DHTML), проверочные элементы управления ASP.NET могут выполнить проверку, используя клиентский сценарий. Поскольку эти элементы управления обеспечивают немедленную обратную связь без цикла обработки на сервере, эффективность работы пользователя со страницей повышается.
В большинстве случаев для применения клиентской проверки не требуется каким-либо образом изменять страницу или проверочные элементы управления. Эти элементы управления автоматически определяют, поддерживает ли обозреватель DHTML, и выполняют проверку в соответствии с этим. При выполнении клиентской проверки используется такой же механизм отображения ошибок, как и при серверной проверке.
Примечание о безопасности. |
---|
Проверка выполняется на сервере, даже если она уже была проведена на клиенте. Это позволяет определить состояние проверки в коде сервера, а также обеспечивает безопасность в том случае, когда пользователи пропускают клиентскую проверку. |
Отличия клиентской проверки
Если проверка выполняется на стороне клиента, проверочные элементы управления содержат некоторые дополнительные возможности:
При обобщении сообщений об ошибках в процессе проверки их можно отображать в окне сообщений, которое выводится во время отправки страницы. Дополнительные сведения см. в разделе Практическое руководство. Управление отображением сообщений об ошибках проверки для серверных элементов управления ASP.NET.
Объектная модель для проверочных элементов управления несколько отличается для клиента. См. подраздел Объектная модель клиентской проверки далее в этом разделе.
Клиентскую проверку отличает несколько несущественных особенностей.
При включении клиентской проверки страница содержит ссылки на библиотеки сценариев, используемые для выполнения клиентской проверки.
При использовании элемента управления RegularExpressionValidator на клиенте можно проверять выражения, если доступен совместимый с ECMAScript язык (например, Microsoft JScript). Регулярные выражения на стороне клиента немного отличаются от проверки регулярных выражений на сервере с использованием класса Regex.
Страница содержит клиентский метод для перехвата и обработки события Click перед отправкой страницы.
Объектная модель клиентской проверки
Проверочные элементы управления предоставляют почти такую же объектную модель для клиента, как и для сервера. Например, можно проверить допустимость, используя один и тот же способ считывания значения свойства IsValid проверочного элемента управления как на клиенте, так и на сервере.
Однако существуют различия в сведениях о проверке, отображаемых на уровне страницы. На сервере страница поддерживает свойства, а на клиенте она содержит глобальные переменные. В следующей таблице сравниваются сведения, отображаемые на странице.
Переменная страницы клиента |
Свойство страницы сервера |
---|---|
Page_IsValid |
IsValid |
Page_Validators(массив) Содержит ссылки на все проверочные элементы управления на странице. |
Validators (коллекция) Содержит ссылки на все проверочные элементы управления. |
Page_ValidationActive Логическое значение, указывающее необходимость выполнения проверки. Присвойте этой переменной значение false, чтобы программно отключить клиентскую проверку. |
(эквивалент отсутствует) |
Примечание. |
---|
Все связанные со страницей сведения о проверке следует считать доступными только для чтения. |
Передача страниц, содержащих ошибки клиентской проверки
В некоторых случаях предпочтительнее отказаться от клиентской проверки, даже если она доступна, а использовать только серверную проверку. Например, клиентская проверка невозможна, если для нее необходимы сведения или ресурсы, которые доступны только на сервере (например, доступ к базе данных).
По умолчанию при выполнении клиентской проверки, если на странице есть ошибки, страницу нельзя передать на сервер. Однако может возникнуть необходимость разрешить пользователю выполнить передачу даже с ошибками. Например, на странице имеется кнопка отмены или кнопка навигации, и необходимо использовать эту кнопку для отправки страницы, даже если некоторые элементы управления не пройдут проверку. Дополнительные сведения см. в разделе Практическое руководство. Отмена проверки для серверных элементов управления ASP.NET.
См. также
Основные понятия
Типы проверки для серверных элементов управления ASP.NET