四、看源碼MVC Controller如何調用Action

Controller繼承ControllrBase,ControllerBase繼承IController,而IController裏只有一個Execute方法
一、ControllrBase裏的Execute(),裏面調用了ExecuteCore(),而ExecuteCore()是個抽象方法,抽象方法是在子類Controller裏實現的

this

 二、抽象方法ExecuteCore()是在子類Controller裏實現的,而調用Action是this.ActionInvoker.InvokeActionspa

三、ControllerActionInvoker裏的InvokeAction,而InvokeAction方法裏的InvokeActionMethodWithFilters纔是真正調用方法的blog

四、InvokeActionMethodWithFilters方法返回ActionExecutedContext繼承

五、而後再執行InvokeActionResultWithFiltersit

六、InvokeActionResultWithFilters裏在調用this.InvokeActionResultFilterRecursiveio

 七、InvokeActionResult裏最終會調用ExecuteResultbfc

相關文章
相關標籤/搜索