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

Standard

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();
   } 
}

Continue reading

ASP.NET MVC – Criando Views Genéricas e com Campos Dinâmicos

Standard

Isso mesmo, neste post demonstrarei como podemos criar uma View genérica, ou seja, que possa ser utilizada de diversas formas, com renderização dos campos de acordo com sua utilidade (campos dinâmicos) e com uma fácil implementação.

Mas você deve estar se perguntado, “Para que eu utilizaria uma View genérica em meu projeto?”. A resposta é fácil e com um simples exemplo fica fácil de responder.

Imagine uma solução onde existam dezenas de relatórios, onde cada um possua parâmetros específicos. Dependendo da forma de desenvolvimento, pode ficar algo um tanto quanto trabalhoso para se programar o preenchimento de cada um. Agora imagine a solução onde você selecionaria o relatório e seus parâmetros já viessem renderizados automaticamente em sua View. Ou até mesmo uma Classe de Usuários com seus campos já renderizados, e ao alterar para uma Classe Clientes por exemplo, na mesma View já vier renderizados os campos apenas do Cliente.

A forma de utilização/implementação e utilidade depende da necessidade de cada um, mas vamos lá!

Como podemos observar abaixo em nosso banco, possuímos apenas duas tabelas (Usuarios e Clientes), note que temos campos dos tipos varchar, int, datetime, bit e decimal:

Figura 1

Continue reading