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