ASP.NET – Validation – C#

Publicado: 15 de janeiro de 2015 em C#

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:

Asp.Net - Design

Asp.Net – Design

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:

Asp.Net - RequiredFieldValidator

Asp.Net – RequiredFieldValidator

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:

Asp.Net - Página Valida

Asp.Net – Página Valida

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">&nbsp;</td>
                    <td class="auto-style9">&nbsp;</td>
                    <td class="auto-style8">&nbsp;</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">&nbsp;</td>
                    <td class="auto-style8">&nbsp;</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>
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s