Controller繼承ControllrBase,ControllerBase繼承IController,而IController裏只有一個Execute方法
1、ControllrBase裏的Execute(),裏面調用了ExecuteCore(),而ExecuteCore()是個抽象方法,抽象方法是在子類Controller裏實現的
2、抽象方法ExecuteCore()是在子類Controller裏實現的,而調用Action是this.ActionInvoker.InvokeAction
3、ControllerActionInvoker裏的InvokeAction,而InvokeAction方法裏的InvokeActionMethodWithFilters纔是真正調用方法的
4、InvokeActionMethodWithFilters方法返回ActionExecutedContext
5、然後再執行InvokeActionResultWithFilters
6、InvokeActionResultWithFilters裏在調用this.InvokeActionResultFilterRecursive
7、InvokeActionResult裏最終會調用ExecuteResult