如下內容抄自博客園: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。