- Action Filter 允许你在调用Action方法之前或之后可以自定义的处理一些逻辑.
- Action Filter是用户自定义的Action方法Attributes.
- 有些可能用到Filter的场景:
- 日记和异常记录
- 身份验证和授权
- 要地化处理
- 动态Action, 将一个Action注入到Controller中
- asp.net MVC为我们提供了以下Fitler接口
- IActionFilter 接口方法:OnActionExted() & OnActionExecuteing(), 在Action方法执行前/后执行
- IAuthorizationFilter 接口方法:OnAuthorization()
- IExceptionFilter 接口方法:OnException() , Action方法出现异常时执行.
- IResultFilter 接口方法:OnResultExecuted() & OnExecuting(), 在Return View()前/后执行
注:接口的方法执行顺序如下:IAuthorizationFilter ->
IActionFilter ->
IResultFilter ->
IExceptionFilter
.
- 如何要自定一个Filter,我们需要继承FilterAttriute类,同时实现上面一个或几个接口
public class MyFilter : FilterAttribute, IActionFilter, IResultFilter { }
- 每一个Action Filter都有一个Order属性, 用来确定过滤器在该范围中的执行顺序
[Filter1(Order = 2)] [Filter2(Order = 3)] [Filter3(Order = 1)] public void Index() { RenderView("Index"); }
ASP.NET MVC 入门9、Action Filter 与 内置的Filter实现(介绍),布布扣,bubuko.com