四、看源码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

相关文章
相关标签/搜索