RSS

ASP.NET MVC – Validando os parâmetros na requisição de uma URL

28 ago

Este post demonstrará como podemos validar os dados em uma URL de requisição ASP.NET MVC, o mesmo foi baseado em um artigo de autoria do Shivprasad Koirala.

Sabemos que em toda requisição para uma Action, os parâmetros sempre são enviados juntos através da URL. Não seria ótimo poder validar estes parâmetros para não permitir que informações inválidas ou fora de padrão cheguem as nossas Actions?

Considerando a seguinte URL em MVC http://localhost:9040/Home/ValidandoOsParametros se formos enviar o id como parâmetro ficaria assim http://localhost:9040/Home/ValidandoOsParametros/4 podemos ver que o id é numérico, logo não podemos realizar a seguinte requisição http://localhost:9040/Home/ValidandoOsParametros/abc.  Para tanto o ASP.NET MVC fornece um mecanismo para validação pelo qual podemos validar a URL analisando se os dados são válidos.

Observe a seguinte ação em HomeController:

public class HomeController : Controller
{
public ActionResult ValidandoOsParametros(int id)
{
return View();
}
}

Até aqui tudo extremamente simples e normal, agora vamos definir a validação na criação da Rota, para tal validação iremos utilizar Regex (Regular Expressions).

Está validação será aplicada utilizando a 4ª sobrecarga da extensão routes.MapRoute, isso claro se você estiver definindo suas Rotas pelo arquivo Global.asax, segue abaixo imagem demonstrativa:

 

Caso você não possua muita familiaridade com Expressões Regulares, aqui tem um ótimo vídeo explicativo (em inglês).

Para realizarmos a validação numérica vamos utilizar a seguinte regex “\d{1,2}”, isto significa que o parâmetro deve ser numérico e deve possuir no máximo dois dígitos, ou seja, deve ser entre 0 e 99. Defini também que o valor padrão para o parâmetro é 0. Veja abaixo como fica a definição de nossa rota completa:



routes.MapRoute(

"Default",

"{controller}/{action}/{id}",

new { controller = "Home", action = "ValidandoOsParametros", id = 0 },

new { id = @"\d{1,2}" });

 

Agora é só testar, observe que passando o id válido a página carrega normalmente, porém quando passamos parâmetros inválidos é apresentado erro:

 

 

 

O mais interessante é que estas validações são realizadas ANTES da requisição chegar até o Controller. 🙂

 

Até a próxima…

Anúncios
 
 

Tags: , , , ,

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 )

Imagem do Twitter

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

Foto do Facebook

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

Foto do Google+

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

Conectando a %s

 
%d blogueiros gostam disto: