ASP.NET MVC 入门9、Action Filter 与 内置的Filter实现,介绍

  1. Action Filter 允许你在调用Action方法之前或之后可以自定义的处理一些逻辑.
  2. Action Filter是用户自定义的Action方法Attributes.
  3. 有些可能用到Filter的场景:
    • 日记和异常记录
    • 身份验证和授权
    • 要地化处理 
    • 动态Action, 将一个Action注入到Controller中
  4. asp.net MVC为我们提供了以下Fitler接口
    • IActionFilter  接口方法:OnActionExted() & OnActionExecuteing(), 在Action方法执行前/后执行
    • IAuthorizationFilter  接口方法:OnAuthorization()
    • IExceptionFilter 接口方法:OnException() , Action方法出现异常时执行.
    • IResultFilter 接口方法:OnResultExecuted() & OnExecuting(), 在Return View()前/后执行

      注:接口的方法执行顺序如下:IAuthorizationFilter ->IActionFilter ->IResultFilter ->IExceptionFilter .

  5. 如何要自定一个Filter,我们需要继承FilterAttriute类,同时实现上面一个或几个接口
    public class MyFilter : FilterAttribute, IActionFilter, IResultFilter
    {
    }
  6. 每一个Action Filter都有一个Order属性, 用来确定过滤器在该范围中的执行顺序
    [Filter1(Order = 2)]
    [Filter2(Order = 3)]
    [Filter3(Order = 1)]
    public void Index()
    {
        RenderView("Index");
    }