验证特定控制器的过滤器

时间:2013-02-28 19:58:52

标签: c# asp.net-mvc validation controller asp.net-web-api

在Web API或ASP.NET MVC应用程序中,我可以通过执行 -

添加全局验证过滤器
  GlobalConfiguration.Configuration.Filters.Add(new ModelValidationFilterAttribute());

public class ModelValidationFilterAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(HttpActionContext actionContext)
    {
        if (actionContext.ModelState.IsValid == false)
        {
            actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.BadRequest, actionContext.ModelState);
        }
    } 
}

但我希望有许多适用于我选择的控制器的验证过滤器?

1 个答案:

答案 0 :(得分:2)

过滤器是可以应用于控制器的属性或控制器中的特定方法/操作。

要根据具体情况使用过滤器,您可以执行以下任一操作:

[MyFilter]
public class HomeController : Controller
{
    //Filter will be applied to all methods in this controller
}

或者:

public class HomeController : Controller
{
    [MyFilter]
    public ViewResult Index()
    {
         //Filter will be applied to this specific action method
    }
}

This tutorial详细介绍了过滤器,并提供了两种方案的示例。