Энтони Мур
Microsoft Corporation
Октябрь 2000
Резюме: подробное объяснение использования ASP+ для проверки веб -элементов управления
Введение
В этой статье подробно объясняется, как работают элементы управления проверкой ASP+. Если вы хотите создать сложную страницу с контролем проверки или хотите расширить структуру проверки, вам рекомендуется прочитать эту статью. Если вы хотите научиться использовать элементы управления проверкой или решить, использовать ли управления проверкой, см. «Проверка ввода пользователя в ASP+ (английский)».
начиная
Мы знаем, что в процессе разработки ASP+ важно понять проверку. Глядя на большинство коммерческих веб -сайтов сегодня, вы увидите, что на этих сайтах есть много форм, которые, очевидно, подтверждены путем выполнения большого количества рукописного кода. Написание кода проверки не интересная работа. Это может быть интересно, если вы хотите написать код для отображения таблиц данных или генерировать диаграммы на лету, но никто не может подтвердить его коллегам, что этот «крутой» подход может запретить нулевые значения в поле «Имя».
По другим причинам проверка веб -приложений также очень неприятной. У HTML 3.2 есть много ограничений на содержание, которые вы можете управлять или обратную связь, которую вы можете получить от пользователей, поэтому он не может применять методы, которые можно использовать для более полнофункциональных клиентов, таких как запрещение пользователей для ввода определенных символов или сигналов. Использование сценариев браузера может привести к более мощной проверке. Тем не менее, этот метод трудно доказать, потому что в браузере клиента не обязательно есть сценарии, и вредоносные пользователи могут обойти его. Поэтому, чтобы обеспечить безопасность сайта, необходимо провести тот же инспекцию на сервере.
При разработке ASP+наше исходное намерение состояло в том, чтобы использовать только один элемент управления для обработки проверки, который мог бы быть управлением текстовым полетом, который мог отображать ошибки. Но когда я разрабатывал контроль, я обнаружил, что это желание не может быть реализовано. Мы рассмотрели большое количество форм ввода данных, пытаясь найти решение, которое может работать с как можно большим количеством форм. Мы обнаружили, что формы ввода данных имеют много интересных функций:
Хотя сообщения об ошибках или значки часто рядом с входным элементом, они почти всегда расположены в разных ячейках таблицы.
На странице часто есть область, чтобы суммировать все ошибки.
Многие сайты включают клиентские сценарии, чтобы обеспечить более быструю обратную связь, не позволяя напрасно переходить на сервер.
Многие сайты, которые содержат клиентские сценарии, отображают информационные поля, когда возникают ошибки.
Не только ввод текста проверяет, но и раскрывающиеся списки и радиопроизводительные кнопки.
Если поле пустое, сайт обычно отображает другое сообщение или значок, чем когда запись недействительна.
Многие проверки достоверности являются хорошими заменами для широко используемых выражений.
Проверка обычно основана на сравнении между двумя входами.
90% или более задач проверки являются общими операциями, такими как проверка имен или почтовые коды. Большинство сайтов все еще, кажется, выполняют эту работу неоднократно.
Потому что различия между сайтами часто слишком велики, чтобы получить идеальное решение для выполнения всех задач проверки для каждого сайта.
Принимая во внимание все вышеперечисленное, окончательное решение включало пять элементов управления валидаторами, управление Validationsumary и интеграцию с объектом страницы. Также очевидно, что решение должно быть расширено, и для сотрудничества для клиента и сервера необходим API.
Мы обнаружили, что благодаря различным валидациям, проводимым в нашем исследовании, нам, казалось, нужен более крупный набор инструментов. В большинстве компонентных сред, таких как Microsoft® ActiveX®, мы могли бы попытаться интегрировать все функциональность управления проверкой в один управление, обрабатывая различные свойства в разных режимах. К счастью, однако, в фреймворке Microsoft® .NET существует волшебное наследование, которая предоставляет набор элементов управления для выполнения конкретной проверки определенных свойств, поскольку дополнительные усилия, необходимые для вывода каждого нового элемента управления, очень невелико.
Большая часть работы, проделанной этими элементами управления, реализуется в их общем родительском базовом спалиде. Вы также можете получить из Basevalidator или других элементов управления для выполнения всей работы. На самом деле, даже Basevalidator слишком ленив, чтобы реализовать свое собственное текстовое свойство, но наследуется от свойства метки.
Когда и что случилось?
Понимание последовательности событий очень эффективно при работе с страницами, содержащими проверку управления веб -управлением. Если условие проверки является необязательным, вам нужно точно знать, когда проверка проверена на клиенте и сервере. Если вы хотите написать свою собственную процедуру проверки, она может быть очень трудоемкой или иметь побочные эффекты. В то же время, также важно понимать время вызова процедуры проверки.
Во -первых, давайте посмотрим на сервер.