如下内容抄自博客园:html
.net Mvc 过滤器执行顺序:.net
IAuthorizationFilter(OnAuthorization)----->IActionFilter(OnActionExecuting)---->控制器Action---->IActionFilter(OnActionExecuted) ---->IResultFilter(OnResultExecuting)---->视图---->IResultFilter(OnResultExecuted)code
Filter的具体生存周期 :htm
来自controller虚方法 的OnActionExecuting .blog
应用于当前Controller的Filter中的OnActionExecuting:接口
先执行基类的,后执派生类的 get
执行应用于Action的Filter的OnActionExecuting顺序:
先执行基类的,后执派生类的博客
Action 方法io
应用于Action的Filter的OnActionExecuted 的执行顺序配置
先执行派生类的,后执行基类的
应用于当前Controller的Filter中的OnActionExecuted方法
先执行派生类的,后执行基类的
Controller中的虚方法 OnActionExecute
如下为本身的内容:
上面写的顺序是系统接口的执行顺序,但是对于附加的过滤器并不包含在其中。
[Filter1] [Filter2] public ActionResult DoAction(){}
上面的这个 Action 配置有两个过滤器:Filter一、Filter2。这两个过滤器也确定是有执行顺序的,可是它们的顺序与直观的上下顺序正好相反:先执行 Filter2,再执行 Filter1。