ASP.NET MVC动作过滤器
ASP.NET MVC中包含以下4种不同类型的Action Filter:
类型 | 使用时机 | 接口 | 实现方法 |
---|---|---|---|
授权过滤器(Authorization Filter) | 在执行任何Filter或Action之前被执行,用于进行身份验证 | IAuthorizationFilter | AuthorizeAttribute |
动作过滤器(Action Filter) | 在执行Action之前或之后被执行,用于执行的Action需要生成记录或者缓存数据时 | IAcationFilter | ActionFilterAttribute |
结果过滤器(Result Filter) | 在执行任何ActionResult之前或之后被执行。在View被显示到浏览器之前可以执行一些逻辑运算,或修改ViewResult的输出结果 | IResultFilter | ActionFilterAttribute |
异常过滤器(Exception Filter) | 在Action执行之前或之后或者Result执行之前或之后被执行。在执行中发生异常时,可以使用此Filter指向其他页面来显示错误信息 | IExceptionFilter | IExceptionFilter |
这4种不同类型的动作过滤器的执行顺序:
ValidateInput属性
[HttpPost, ValidateInput(false)] public ActionResult Edit(int id, FormCollection formValues) { return View(); }