Partilhar via


Como: Testar a validade por programação controles de servidor ASP.NET

Controles de validação testam a entrada do usuário, definem um estado de erro, e geram mensagens de erro.Eles não alteram o fluxo de processamento da página — por exemplo, eles não ignoram seu código se eles detectarem um erro de entrada do usuário.Em vez disso, você testa o estado dos controles em seu código antes de executar uma lógica específica do aplicativo.Se você detectar um erro, você impede que seu próprio código seja executado; a página continua a processar e é retornada ao usuário com mensagens de erro.

Observação de segurança:

Por padrão, páginas da Web ASP.NET validam automaticamente que usuários mal-intencionados não estão tentando enviar elementos HTML ou scripts para seu aplicativo.Para obter mais informações, consulte Visão Geral de Scripts Maliciosos.

Você pode testar um estado geral, que inclui toda a página, e você pode testar o estado de controles individuais.Normalmente, você faz essas coisas nos manipuladores de eventos que você cria para uma página.

Para testar um estado de erro geral

  • Em seu código, teste a propriedade IsValid da página.Essa propriedade acumula os valores das propriedades IsValid de todos os controles de validação da página (usando um E lógico); se qualquer controle de validação é definido para inválido, a propriedade da página retornará FALSE.

    Observação:

    Informações de validação não estão disponíveis durante a inicialização ou estágio de carregamento de uma página.No entanto, você pode chamar o método Validate manualmente durante Page_Load e, em seguida, testar a propriedade IsValid da página.Para obter detalhes sobre estados da página, consulte Visão Geral do Ciclo de Vida da Página ASP.NET.

    O exemplo de código a seguir mostra o manipulador de eventos para um botão.O código testa a propriedade IsValid da página.Observe que não há necessidade de uma cláusula else, porque a página será retornada automaticamente para o navegador e os controles de validação irão exibir suas próprias mensagens de erro.

    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.
        }
    }
    

Para testar o estado de erro de controles individuais

  • Execute um loop através da coleção Validators da página, que contém referências a todos os controles de validação.Você pode então examinar a propriedade IsValid de cada controle de validação.

    Observação:

    Se você desejar executar essa verificação durante Page_Load, você deve manualmente chamar o método Validate primeiro.

    O exemplo de código a seguir mostra como você pode obter o estado de controles de validação individuais.

    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;
        }
    }
    

Consulte também

Tarefas

Como: Controle validação erro mensagem Display for ASP.NET servidor Controls

Como: Validar Programmatically for ASP.NET servidor Controls

Referência

Validando Entrada de Usuário em Páginas da Web ASP.NET