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 FernandesHoje 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