Поделиться через


Практическое руководство. Программная проверка допустимости значений серверных элементов управления ASP.NET

Обновлен: Ноябрь 2007

Проверяющие элементы управления проверяют пользовательский ввод данных, задают состояние ошибки и создают сообщения об ошибках. Они не изменяют поток обработки страниц — например, они не пропускают код при обнаружении ошибки в данных, введенных пользователем. Вместо этого проверяется состояние элементов управления в коде перед выполнением логики, зависящей от приложения. При обнаружении ошибки запрещается выполнение кода; обработка страницы продолжается и она возвращается пользователю с сообщениями об ошибках.

dh9ad08f.alert_security(ru-ru,VS.90).gifПримечание о безопасности.

По умолчанию веб-страницы ASP.NET автоматически выполняют проверку на предмет попыток несанкционированной отправки в приложение сценариев или элементов HTML. Дополнительные сведения см. в разделе Общие сведения об использовании сценариев.

Возможна проверка общего состояния и состояния страницы, а также проверка отдельных элементов управления. Обычно это выполняется в обработчиках событий, создаваемых для страницы.

Проверка общего состояния ошибки

  • Проверьте в коде свойство страницы IsValid. Это свойство сводит значения свойств IsValid всех проверяющих элементов управления на странице с помощью логического оператора AND. Если один из них является недопустимым, свойство страницы вернет значение «false».

    dh9ad08f.alert_note(ru-ru,VS.90).gifПримечание.

    Сведения о проверке недоступны при инициализации страницы или на стадии загрузки. Однако можно вызвать метод 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 каждого проверяющего элемента управления.

    dh9ad08f.alert_note(ru-ru,VS.90).gifПримечание.

    Чтобы выполнить эту проверку при выполнении 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

Ссылки

Проверка сведений, вводимых пользователем на веб-страницах ASP.NET