Compartilhar via


Resultados de validação de casos especiais para controles do servidor ASP.NET

A validação garante que o que o usuário inseriu satisfaça certos critérios que você especificar.Na maioria dos casos, isso é uma operação simples.Entretanto, às vezes, as situações sob a qual a entrada é validada lançam condições especiais.É importante que você compreenda quais são essas condições, como a validação é efetuada, e o que os resultados de uma tentativa de validação podem ser.

Comparando contra campos em branco

Todos os controles de validação, exceto o controle RequiredFieldValidator considera um campo válido se ele estiver em branco.Você deve usar o controle RequiredFieldValidator para impedir que um usuário deixe um campo em branco.Por exemplo, se você anexar um controle RangeValidator a um campo de data, a validação passa se o usuário insere uma data no intervalo especificado, ou se o campo for deixado em branco.Se você quiser garantir que o usuário insira uma data, adicione um controle RequiredFieldValidator para o campo de data junto com o intervalo de seleção.

Comparando contra outro controle

Ao usar o controle CompareValidator, você pode especificar que a validação seja executada com relação ao valor de outro controle.Por exemplo, você pode ter dois campos para inserir datas, uma data de início e uma data de término.Usando um controle CompareValidator, você pode garantir que a data de início seja menor ou igual à data final.

Observação de segurança:

Entrada do usuário em um página da Web do ASP.NET pode incluir script de cliente possivelmente mal-intencionado.Por padrão, a página valida que a entrada do usuário não inclui script ou elementos HTML.Para obter mais informações, consulte Visão Geral de Scripts Maliciosos.

Se os controles de validação não podem resolver o valor em outro controle, eles não levantam um erro; em vez disso, a verificação da validação passa.Isso ocorre se o valor no outro controle está ausente ou não puder ser convertido para o tipo de dados do controle CompareValidator.

Os testes específicos executados por esses controles, e possíveis resultados, são:

  • Se o controle de destino inserido na propriedade ControlToValidate do controle de origem não tem um valor, a propriedade IsValid será considerada true e passa a validação.

  • Se o valor do controle de destino na propriedade ControlToValidate não pode ser convertido para o tipo de dados apropriado, IsValid será considerado false.

  • Se o valor do controle de destino na propriedade ControlToCompare não puder ser convertido para o tipo de dados apropriado, IsValid será considerado true.

  • Finalmente, se todos esses testes tiverem passado, então os dois controles são não vazio e podem ser convertidos no tipo de dados, portanto o controle executa a comparação real e define IsValid adequadamente.

Essa estratégia impede vários erros de serem reportados para a mesma entrada inválida.Controles de validação são criados para testar e reportar somente um valor e para serem capazes de exibir uma mensagem tão precisa quanto possível quando um erro for encontrado.

No exemplo da data final, por exemplo, imagine que o usuário insere uma data de início inválida.Em seguida, o usuário insere uma data de término.Quando a verificação de validação é executada (geralmente no servidor), a mesma data incorreta pode aumentar um erro para o campo data de início e para a data final potencialmente.Para evitar que isso ocorra, a validação de data de término — a validação dependente de outro campo — não gera um erro.

Portanto, você deve certificar-se que você fornece validação suficiente para cada campo individual.No exemplo, é de responsabilidade sua certificar-se de que o usuário inseriu uma data apropriada no campo data de início.Em muitos casos, você deve incluir um controle RequiredFieldValidator na adição para um controle de validação que testa o conteúdo de uma entrada específica.Também é útil em alguns casos, adicionar um CompareValidator controle com seu Operator conjunto de propriedades comoDataTypeCheck, que um tipo simples verificar sem fazer uma comparação para outro valor ou controle.

Consulte também

Conceitos

Tipos de validação para controles de servidor do ASP.NET

Outros recursos

Controles de Validação do ASP.NET