C:/Windows/Microsoft.NET/Framwork/v4.0.30319/config/web.config->
httpModules->
System.Web.Routing.UrlRoutingModule->
Init->
application.PostResolveRequestCache+=new EventHandler(this.OnApplicationPostResolveRequestCache);
RouteCollectionExtensions类--RouteCollection扩展类
路由注册 MapRoute
网站第一次被请求时,进行路由注册,路由表里就有路由数据了
路由数据在事件管道之前就已存在
UrlRoutingModule类
第7个事件(PostResolveRequestCache)上被注册了OnApplicationPostResolveRequestCache方法
一旦URL匹配到路由规则,则创建MVCHandler存入HttpContext;
第8个事件会检查HttpContext里的remapHandler,如果为空,则创建页面类对象。
第11个事件(PreRequestHandlerExecute)、12个事件之间(PostRequestHandlerExecute)调用MVCHandler对象的ProcessRequest方法
1、根据URL获取控制器类名创建对应控制器类对象
2、根据URL获取Action方法名,并调用控制器类对象里对应方法
3、找到视图引擎并获取ViewEngineResult
4、获取请求对应的视图(IView)对象
5、调用Render方法生成HTML