Практическое руководство. Программная проверка допустимости значений серверных элементов управления ASP.NET
Обновлен: Ноябрь 2007
Проверяющие элементы управления проверяют пользовательский ввод данных, задают состояние ошибки и создают сообщения об ошибках. Они не изменяют поток обработки страниц — например, они не пропускают код при обнаружении ошибки в данных, введенных пользователем. Вместо этого проверяется состояние элементов управления в коде перед выполнением логики, зависящей от приложения. При обнаружении ошибки запрещается выполнение кода; обработка страницы продолжается и она возвращается пользователю с сообщениями об ошибках.
Примечание о безопасности. |
---|
По умолчанию веб-страницы ASP.NET автоматически выполняют проверку на предмет попыток несанкционированной отправки в приложение сценариев или элементов HTML. Дополнительные сведения см. в разделе Общие сведения об использовании сценариев. |
Возможна проверка общего состояния и состояния страницы, а также проверка отдельных элементов управления. Обычно это выполняется в обработчиках событий, создаваемых для страницы.
Проверка общего состояния ошибки
Проверьте в коде свойство страницы IsValid. Это свойство сводит значения свойств IsValid всех проверяющих элементов управления на странице с помощью логического оператора AND. Если один из них является недопустимым, свойство страницы вернет значение «false».
Примечание. Сведения о проверке недоступны при инициализации страницы или на стадии загрузки. Однако можно вызвать метод Validate вручную при выполнении обработчика событий Page_Load, а затем проверить свойство IsValid. Подробные сведения о состояниях страницы см. в разделе Общие сведения о жизненном цикле веб-страниц ASP.NET.
В следующем примере кода показан обработчик событий для кнопки. Код проверяет свойство IsValid страницы. Обратите внимание, что нет необходимости в предложении «else», поскольку страница будет возвращена обозревателю автоматически, а в проверяющих элементах управления будут отображаться их сообщения об ошибках.
Public Sub Button1_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) _ Handles Button1.Click If Me.IsValid Then ' Perform database updates or other logic here End If End Sub
void Button1_Click(object sender, System.EventArgs e) { if (IsValid) { // Perform database updates or other logic here. } }
Проверка состояния ошибки отдельных элементов управления
Организуйте цикл по коллекции Validators страницы, содержащей ссылки на все проверяющие элементы управления. Затем можно проверить свойство IsValid каждого проверяющего элемента управления.
Примечание. Чтобы выполнить эту проверку при выполнении Page_Load, необходимо сначала вручную вызвать метод Validate.
В следующем примере кода показано, как получить сведения о состоянии отдельных проверяющих элементов управления.
If (Me.IsPostBack) Then Me.Validate() If (Not Me.IsValid) Then Dim msg As String ' Loop through all validation controls to see which ' generated the error(s). Dim oValidator As IValidator For Each oValidator In Validators If oValidator.IsValid = False Then msg = msg & "<br />" & oValidator.ErrorMessage End If Next Label1.Text = msg End If End If
if (this.IsPostBack) { this.Validate(); if (!this.IsValid) { string msg = ""; // Loop through all validation controls to see which // generated the errors. foreach (IValidator aValidator in this.Validators) { if (!aValidator.IsValid) { msg += "<br />" + aValidator.ErrorMessage; } } Label1.Text = msg; } }
См. также
Задачи
Практическое руководство. Программная проверка серверных элементов управления ASP.NET
Ссылки
Проверка сведений, вводимых пользователем на веб-страницах ASP.NET