[QuickTip] - Validando ModelState globalmente
![[QuickTip] - Validando ModelState globalmente](/content/images/size/w2000/2018/06/blog-thumb-3-1.jpg)
Olá pessoALL,
Estou escrevendo um posto sobre como podemos usar filtros nos controllers para reduzir o código que escrevemos, especialmente para regra de negócios, e antes gostaria que compartilhar uma dica rápida para reduzir o código dos nossos controllers.
Normalmente nossos controllers possuem um código +/- assim:
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
E repetimos isso por todos os controllers, mas podemos fazer isso globalmente para todas as nossas actions, utilizando um Action Filter.
public class ValidateModelAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext context)
{
if (!context.ModelState.IsValid)
{
context.Result = new BadRequestObjectResult(context.ModelState);
return;
}
}
}
Para utilizar o filtro adicione o código a seguir no método ConfigureServices
da classe Startup.cs
.
services.AddMvc(opts =>
{
opts.Filters.Add(typeof(ValidateModelAttribute));
});
Pronto! Agora todas as nossas Actions irão validar o ModelState automaticamente.
[]s e até a próxima.