1.路由比对
接到http请求,在UrlRoutingModule模块中处理与网址路由有关的运算。默认情况下如果该网址可以对应于网站跟目录下的实体文件,则不会交给MVC处理,直接交由IIS运行。可以通过在Application_start函数中设置RouteTable.Routes.RouteExistingFiles = true,这样就可以不先判断跟目录下是否有实体文件对应。
成功匹配路由规则后,交由MvcRouteHandler来决定要求使用那个HttpHandler来运行,一般是MvcHandler来处理。
2.运行控制器(Controller)和动作(Action)
通过路由值取得Controller和Action,在Action查找到actionResult.如果返回非ViewResult,则直接把响应结果返回客户端
3.运行View并回传结果
如果返回的是ViewResult,则通过接口IViewEngine的FindView获取webForm还是Razor,再调用获取的webFrom或Razor实例对象的Render响应HTML到客户端
时间: 2024-10-01 00:23:06