ASP.NET路由系统实现原理:HttpHandler的动态映射(4)

来源:未知 责任编辑:责任编辑 发表时间:2014-01-26 22:00 点击:

   9:         this.UriTemplate = new UriTemplate(template);
  10:         this.RouteHandler = new PageRouteHandler(physicalPath);
  11:         if (null != dataTokens)
  12:         {
  13:             this.DataTokens = new RouteValueDictionary(dataTokens);
  14:         }
  15:         else
  16:         {
  17:             this.DataTokens = new RouteValueDictionary();
  18:         }
  19:     }
  20:     public override RouteData GetRouteData(HttpContextBase httpContext)
  21:     {
  22:         Uri uri = httpContext.Request.Url;
  23:         Uri baseAddress = new Uri(string.Format("{0}://{1}", uri.Scheme, uri.Authority));
  24:         UriTemplateMatch match = this.UriTemplate.Match(baseAddress, uri);
  25:         if (null == match)
  26:         {
  27:             return null;
  28:         }
  29:         RouteData routeData = new RouteData();
  30:         routeData.RouteHandler = this.RouteHandler;
  31:         routeData.Route = this;
  32:         foreach (string name in match.BoundVariables.Keys)
  33:         {
  34:             routeData.Values.Add(name,match.BoundVariables[name]);
  35:         }
  36:         foreach (var token in this.DataTokens)
  37:         {
  38:             routeData.DataTokens.Add(token.Key, token.Value);
  39:         }
  40:         return routeData;
  41:     }
  42:     public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values)
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • 浅析.NET下XML数据访问新机制
  • asp.net 面试+笔试题目第1/2页
  • C# 邮件地址是否合法的验证
  • C#高级编程:数据库连接[1]
  • asp.net 设置GridView的选中行的实现代码
  • 经典C++程序1
  • IIS 自动回收导致后台定时器失效的问题解决
  • ASP.NET GridView列表代码示例
  • 微软ASP.NET站点部署指南(3):使用Web.Config文件的Transforma
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1