A tecnologia ASP.NET possui algumas funcionalidades que visam facilitar a validação de campos e economizar tempo do desenvolvedor na criação da interface com o usuário. Permitindo trabalhar com alguns controles que executam todas verificações automaticamente, sem necessidade de escrever código. Toda via, por padrão, uma página Web Forms valida automaticamente se usuários mal-intencionados não estão tentando enviar scripts para a sua aplicação, mesmo se você não usar controles de validação.
Validação Contra Exploits: http://msdn.microsoft.com/en-us/library/vstudio/w1sw53ds(v=vs.100).aspx
Por padrão o tipo de validação Unobtrusive também é ativada na nova versão do ASP.NET. Validação Unobtrusive visa diminuir o tamanho da página, substituindo o JavaScript em linha para efetuar uma validação com uma biblioteca JavaScript pequena que usa jQuery. Você pode desabilitar está validação configurando o arquivo web.config.
Validando Campos Obrigatórios
Neste walkthrough utilizamos somente os RequiredFieldValidator, mas você pode executar outros tipos de validações com os componentes encontrados na caixa de ferramentas na opção Validation.
1 – Crie um novo projeto para Web do tipo C# Empty e crie uma nova pagina WebForm, utilize o código abaixo e a imagem para criar o design da sua aplicação:
2 – Para executar a validação nenhum código C# é necessário. No botão crie um grupo para os campos que deseja validar usando a propriedade ValidationGroup à preenchendo com AllValidator e nos campos de validação subsequentes também preencha a mesma propriedade com o mesmo valor, definindo os controles do grupo para serem validados, em seguida preencha a mensagem de erro na propriedade ErrorMessage de cada campo de validação. Assim que rodar sua aplicação tente clicar no botão sem preencher nenhum campo e a validação será executada, exibindo a mensagem de erro para os campos requeridos:
3 – Com os campos requeridos devidamente alimentados, a pagina se torna valida e a verificação do evento de clique do botão exibe a mensagem de sucesso:
Exemplo:
Neste exemplo criamos uma validação para os campos de texto os tornando de preenchimento obrigatório, para que a aplicação funcione corretamente desabilitamos a validação Unobtrusive já que estamos utilizando a nova versão do ASP.NET no qual ela é padrão. Caso queira usar o novo tipo de validação veja o vídeo abaixo:
Unobtrusive: http://blogs.msdn.com/b/mspfe/archive/2014/07/07/unobtrusive-java-script-validation.aspx
ASP.NET
default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="DAWebApp001._default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <style type="text/css"> .auto-style2 { width: 14%; } .auto-style3 { height: 23px; } .auto-style5 { width: 248px; } .auto-style6 { width: 54%; } .auto-style8 { height: 23px; width: 54%; } .auto-style9 { height: 23px; width: 248px; } </style> </head> <body> <h1>Desenvolvimento Aberto - ASP.NET</h1> <h2>Validação de Controles</h2> <form id="form1" runat="server"> <div> <table style="width: 100%;"> <tr> <td class="auto-style3" colspan="2"> <asp:Label ID="LabelMenssagem" runat="server" Text="Entre com os dados abaixo:"></asp:Label> </td> <td class="auto-style8"></td> </tr> <tr> <td class="auto-style2"> <asp:Label ID="Label2" runat="server" Text="Nome:"></asp:Label> </td> <td class="auto-style5"> <asp:TextBox ID="TextBox1nome" runat="server" Width="142px"></asp:TextBox> </td> <td class="auto-style6"> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1nome" ErrorMessage="Nome é obrigatório." ForeColor="Red" ValidationGroup="AllValidator"></asp:RequiredFieldValidator> </td> </tr> <tr> <td class="auto-style3"> <asp:Label ID="Label3" runat="server" Text="Sobrenome:"></asp:Label> </td> <td class="auto-style9"> <asp:TextBox ID="TextBox2sobrenome" runat="server" Width="240px"></asp:TextBox> </td> <td class="auto-style8"> <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="TextBox2sobrenome" ErrorMessage="Sobrenome é obrigatório." ForeColor="Red" ValidationGroup="AllValidator"></asp:RequiredFieldValidator> </td> </tr> <tr> <td class="auto-style3"> <asp:Label ID="Label4" runat="server" Text="Cargo:"></asp:Label> </td> <td class="auto-style9"> <asp:TextBox ID="TextBox3cargo" runat="server" Width="186px"></asp:TextBox> </td> <td class="auto-style8"> <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="TextBox3cargo" ErrorMessage="Cargo é obrigatório." ForeColor="Red" ValidationGroup="AllValidator"></asp:RequiredFieldValidator> </td> </tr> <tr> <td class="auto-style3"> <asp:Label ID="Label5" runat="server" Text="Salário:"></asp:Label> </td> <td class="auto-style9"> <asp:TextBox ID="TextBox4salario" runat="server"></asp:TextBox> </td> <td class="auto-style8"> <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="TextBox4salario" ErrorMessage="Salário é obrigatório. " ForeColor="Red" ValidationGroup="AllValidator"></asp:RequiredFieldValidator> </td> </tr> <tr> <td class="auto-style3"> </td> <td class="auto-style9"> </td> <td class="auto-style8"> </td> </tr> <tr> <td class="auto-style3"> <asp:Button ID="Button1enviardados" runat="server" Text="Enviar Dados" OnClick="Button1enviardados_Click" ValidationGroup="AllValidator" /> </td> <td class="auto-style9"> </td> <td class="auto-style8"> </td> </tr> </table> </div> </form> </body> </html>
default.aspx.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace DAWebApp001 { public partial class _default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1enviardados_Click(object sender, EventArgs e) { if (Page.IsValid) { // Envia menssagem quando todos os campos requeridos // forem preenchidos tornando a página valida. LabelMenssagem.ForeColor = System.Drawing.Color.Green; LabelMenssagem.Text = "Dados enviados com sucesso."; } } } }
web.congif
<?xml version="1.0" encoding="utf-8"?> <!-- For more information on how to configure your ASP.NET application, please visit http://go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> <system.web> <compilation debug="true" targetFramework="4.5" /> <httpRuntime targetFramework="4.5" /> </system.web> <appSettings> <add key="ValidationSettings:UnobtrusiveValidationMode" value="None"/> </appSettings> </configuration>