知识大全 ASP.NET MVC 4框架揭秘:URL路由(3)

Posted

篇首语:历览千载书,时时见遗烈。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ASP.NET MVC 4框架揭秘:URL路由(3)相关的知识,希望对你有一定的参考价值。

ASP.NET MVC 4框架揭秘:URL路由(3)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

     URL路由( )

  在Global asax中我们创建了一个基于指定URL模板( controller/action )的Route对象 并将其添加到通过RouteTable的静态只读属性Routes所表示的全局路由表中

  UrlRoutingModule

  路由表的作用是对当前的HTTP请求的URL进行解析 从而获取一个以Controller和Action名称为核心的路由数据 即上面介绍的RouteData对象 整个解析工作是通过一个类型为UrlRoutingModule的自定义HttpModule来完成的 如下面的代码片段所示 在实现了接口IHttpModule的UrlRoutingModule类型的Init方法中 我们注册了HttpApplicataion的PostResolveRequestCache事件

  public class UrlRoutingModule: IHttpModule

  

  public void Dispose()

  

  public void Init(HttpApplication context)

  

  context PostResolveRequestCache += OnPostResolveRequestCache;

  

  protected virtual void OnPostResolveRequestCache(object sender EventArgs e)

  

  HttpContextWrapper Context =

  new HttpContextWrapper(HttpContext Current)

  RouteData routeData = RouteTable Routes GetRouteData(Context)

  if (null == routeData)

  

  return;

  

  RequestContext requestContext = new RequestContext

  RouteData = routeData HttpContext = Context ;

  IHttpHandler handler =

  routeData RouteHandler GetHttpHandler(requestContext)

  Context RemapHandler(handler)

  

  

  当PostResolveRequestCache事件触发之后 UrlRoutingModule通过RouteTable的静态只读属性Routes得到表示全局路由表的RouteDictionary对象 然后调用其GetRouteData方法并传入用于封装当前HttpContext的HttpContextWrapper对象(HttpContextWrapper是HttpContextBase的子类)最终得到一个封装路由数据的RouteData对象 如果得到的RouteData不为Null 则根据该对象本身和之前得到的HttpContextWrapper对象创建一个表示当前请求上下文的RequestContext对象 将其作为参数传入RouteData的RouteHandler的GetHttpHandler方法得到一个HttpHandler对象 最后我们调用HttpContextWrapper对象的RemapHandler方法将得到的HttpHandler进行映射使之用于对当前HTTP请求的处理

       返回目录 ASP NET MVC 框架揭秘

       编辑推荐

       ASP NET开发培训视频教程

       Microsoft NET框架程序设计视频教程

       Java程序性能优化 让你的Java程序更快 更稳定

cha138/Article/program/net/201311/16110

相关参考

知识大全 ASP.NET MVC 4框架揭秘:Controller的激活与URL路由[1]

ASP.NETMVC4框架揭秘:Controller的激活与URL路由[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让

知识大全 ASP.NET MVC 4框架揭秘:Controller的激活与URL路由[2]

ASP.NETMVC4框架揭秘:Controller的激活与URL路由[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让

知识大全 ASP.NET MVC 4框架揭秘

ASP.NETMVC4框架揭秘  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  第章ASPNET+

知识大全 ASP.NET MVC 4框架揭秘:默认实现

ASP.NETMVC4框架揭秘:默认实现  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  &nbs

知识大全 ASP.NET MVC 4框架揭秘:总体设计

ASP.NETMVC4框架揭秘:总体设计  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  第章&n

知识大全 ASP.NET MVC 4框架揭秘:ControllerFactory[2]

ASP.NETMVC4框架揭秘:ControllerFactory[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们

知识大全 ASP.NET MVC 4框架揭秘:ControllerFactory[1]

ASP.NETMVC4框架揭秘:ControllerFactory[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们

知识大全 ASP.NET MVC 4框架揭秘:Controller(1)

ASP.NETMVC4框架揭秘:Controller(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 ASP.NET MVC 4框架揭秘:Controller(3)

ASP.NETMVC4框架揭秘:Controller(3)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一