Desenvolvimento - C#

Validação de Dados no ASP.NET MVC

Este artigo mostra de maneira simples como funciona a validação de dados a partir do modelo. Atráves de atributos que definimos nas propriedades dos modelos e ligando elas ao formulário podemos criar validações quase que automaticamente.

por Pedro Henrique Barbosa Fernandes



Hoje vou mostrar como podemos validar os dados dos objetos de modelo com o ASP.NET MVC.

Este artigo usa o ASP.NET MVC 3, você encontra um link para baixá-lo no final deste artigo.

Vá em File -> New Project e crie um novo projeto ASP.NET MVC 3 Web Application

Na janela que abrir para selecionar o template, deixe marcado Internet Application e clique em OK.

Será criado um site com a estrutura semelhante à abaixo:

Clique com o botão direito na pasta Models e clique em Add -> Class... Crie uma nova classe chamada Pessoa.cs

Crie a classe conforme abaixo:

usingSystem.ComponentModel.DataAnnotations;
 
namespaceMvcValidacao.Models
{
publicclassPessoa
{
[Required(ErrorMessage="Digiteonome")]
[StringLength(100,ErrorMessage="ONomedeveterentre1e100caracteres")]
publicstringNome{get;set;}
 
[Required(ErrorMessage="Digiteoemail")]
publicstringEmail{get;set;}
 
[Required(ErrorMessage="Digiteoendereço")]
publicstringEndereco{get;set;}
}
}

O atributo Required define que a propriedade deve ser preenchida, a propriedade ErrorMessage define a mensagem que será exibida quando não preencher o campo correspondente a essa propriedade.

O atributo StringLength determina o limite de caracteres para o campo correspondente a essa propriedade.

Após isso, clique com o botão direito na pasta Controllers e clique em Add -> Controller... Nomeie como PessoaController e em Scaffolding option -> Template deixe como Empty Controller

Crie uma Action Novo acessada via GET que vai renderizar o formulário e uma Action Novo que é acessada via POST que vai receber os dados do formulário:

usingSystem.Web.Mvc;
usingMvcValidacao.Models;
 
namespaceMvcValidacao.Controllers
{
publicclassPessoaController:Controller
{
//
//GET:/Pessoa/
 
publicActionResultIndex()
{
returnView();
}
 
[HttpGet]
publicActionResultNovo()
{
//RetornaaviewNovo
returnView();
}
 
[HttpPost]
publicActionResultNovo(Pessoapessoa)
{
/*SealgumapropriedadenãoatendeavalidaçãodefinidanaclassePessoa
*oModelState.IsValidseráFalse,entãoretornaráaViewdevolta
*devolvendoosdadosdomodeloPessoa
**/
if(!ModelState.IsValid)
returnView(pessoa);
 
//SeestátudoOk,voltaparaaIndexdocontroller
returnRedirectToAction("Index");
}
}
}

Clique com o botão direito na pasta Views e clique em Add -> New Folder, chame-a de Pessoa.

Clique com o botão direito na pasta recém criada Pessoa, clique em Add -> View...

Em View name:, escreva Novo.

Marque a opção Create a strongly-typed view, e deixe a opção Model class: definida para a classe Pessoa.

Em Scaffold template: deixe como Create.

Marque a opção Use a layout master page: e selecione o arquivo _Layout.cshtml localizado na pasta Shared.

As opções ficarão como a seguir:

O formulário já foi automaticamente criado.

Inicie a aplicação e vá até a url:

http://localhost:{PORTA}/ Pessoa/Novo

Vamos testar a validação, deixe todos os campos em branco e clique no botão Create.

Se tudo estiver ok, vai aparecer como abaixo:

Teste também o limite de caracteres do campo Nome

Isso é apenas uma pequena demonstração de como podemos validar automaticamente os dados através do modelo.

Download do ASP.NET MVC 3:

http://www.asp.net/mvc/mvc3

Pedro Henrique Barbosa Fernandes

Pedro Henrique Barbosa Fernandes