一.MvcHandler——Controller——Action
先用反编译工具看看MvcHandler的内部:
先说明一下,MvcHandler是继承自IHttpHandler的,先看一下IHttpHandler这个接口:
顺藤摸瓜,进到MvcHandler:
再看ProcessRequestInit方法:
从上面看出,ProcessRequestInit方法是控制器实例的创建,上面是MvcHandler——Controller的实现过程。
下面介绍Controller——Action。回到RrocessRequest方法,接下来它执行了Execute方法
找Execute方法,但此方法不是在Controller类中,不是因为写错了,其实它在父类ControllerBase类中。看Execute方法:
ExecuteCore():
总结一下:
先找控制器和方法上面写的特性,如果存在这个特性,则调用其中的方法,如果调用的结果错了, 则跳到指定的页面或者相应的处理;如果通过了,就