发送给基于 ASP.NET MVC 的 Web 应用程序的请求首先经过 UrlRoutingModule 对象(一个 HTTP 模块)进行传递。 此模块将分析请求并执行路由选择。 UrlRoutingModule 对象将选择与当前请求匹配的第一个路由对象。 (路由对象是实现 RouteBase 的类,而且一般是Route 类的实例。)若是任何路由都不匹配,则 UrlRoutingModule 对象不执行任何操做,并容许请求回退到常规的 ASP.NET 或 IIS 请求处理流程。web
从选定的 Route 对象中,UrlRoutingModule 对象将得到一个对象,所得到的对象将实现 IRouteHandler 接口并与 Route 对象关联。一般,在 MVC 应用程序中,这将是 MvcRouteHandler 类的一个实例。 MvcRouteHandler 实例将建立一个实现 IHttpHandler 接口的MvcHandler 对象。 而后,MvcHandle 对象会选择将最终处理该请求的控制器。 有关更多信息,请参见 ASP.NET 路由。json
注意:mvc
若是 ASP.NET MVC Web 应用程序运行在 IIS 7.0 中,则 MVC 项目不须要文件扩展名。 可是,在 IIS 6.0 中,处理程序要求将 .mvc 文件扩展名映射到 ASP.NET ISAPI DLL。app
UrlRoutingModule 和 MvcRouteHandler 类是 ASP.NET MVC 框架的入口点。 它们执行下列操做:框架
-
选择 MVC Web 应用程序中合适的控制器。ide
-
获取特定的控制器实例。ui
-
调用该控制器的 Execute 方法。this
下表列出了 MVC Web 项目的执行阶段。url