4、看源码MVC Controller如何调用Action
程序员文章站
2022-09-27 17:13:23
Controller继承ControllrBase,ControllerBase继承IController,而IController里只有一个Execute方法 1、ControllrBase里的Execute(),里面调用了ExecuteCore(),而ExecuteCore()是个抽象方法,抽象 ......
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