http://www.cnblogs.com/youring2/archive/2011/07/22/2113595.html

asp.net 4.0中提供了Routing 的支持。通过使用routing技术,我们可以方便的构建出友好的url,即能方便用户理解,又能做到SEO的优化。

  
  1.在Global中注册路由表
        void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
this.RegisterRoutes(RouteTable.Routes);
} void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("BookDetails",
"book/details/{index}/{keyword}",
"~/book/details.aspx",
false,
new RouteValueDictionary()
{
{ "index", "1" },
{"keyword", ""}
}
);
}

  

  2.生成URL

  一种方法是硬编码,根据上面的规则,我们可以简单的写出一个匹配的URL:/book/details/23/asp

  当然,硬编码的方式是不被推荐的,它不便于维护我们的规则。在这里,我们推荐使用VirtualPathData 来生成虚拟路径,在使用的时候,我们需要提供相应的路由名称和参数列表:

    RouteValueDictionary parameters = new RouteValueDictionary()
{
{"index", "19" },
{"keyword", "Tom" },
}; VirtualPathData vpd = RouteTable.Routes.GetVirtualPath(null, "BookDetails", parameters);
hlCreateURL.NavigateUrl = vpd.VirtualPath;

  在这段代码中,vpd.VirtualPath就是根据规则BookDetails生成的虚拟URL。

  3.获取参数值

  使用了Routing后,我们就不能再通过Request.QueryString 集合来获取URL的参数了。这是因为Routing并没有重写URL,只是将URL的处理交给了指定的页面。

  这个时候,我们要获取网页的参数,就需要使用Routing中的方法了。

this.Page.RouteData.Values["index"];
this.Page.RouteData.Values["keyword"];

  

  整个的使用流程就是这样的,首先要有规则,然后要有访问的地址,最后要能获取到实际的参数。

---------------------------------------------------------

ps. 附上一些学习资源,分别来自老赵的博客和MSDN:

 

如果认为此文对您有帮助,别忘了支持一下哦!

asp.net Routing 用法的更多相关文章

  1. 005. Asp.Net Routing与MVC 之三: 路由在MVC的使用

    上次讲到请求如何激活Controller和Action,这次讲下MVC中路由的使用.本次两个关注点: 遗留:ModelBinder.BindModel的过程 MVC中路由的使用 MVC 5中的Acti ...

  2. ASP.NET路由[ASP.NET Routing]

    ASP.NET路由[ASP.NET Routing] ASP.NET路由允许你在使用URL时不必匹配到网站中具体的文件,因为这个URL不必匹配到一个文件,你使用了描述用户行为且更容易被用户理解的URL ...

  3. .NET/ASP.NET Routing路由(深入解析路由系统架构原理)

    阅读目录: 1.开篇介绍 2.ASP.NET Routing 路由对象模型的位置 3.ASP.NET Routing 路由对象模型的入口 4.ASP.NET Routing 路由对象模型的内部结构 4 ...

  4. 003. Asp.Net Routing与MVC 之一: 请求如何到达MVC

    基础知识 本文用到的基础知识:URL.HttpModule 与 HttpHandler.IIS 的请求处理过程. URL HttpModule与HttpHandler IIS7.0的请求处理过程 OK ...

  5. .NET/ASP.NET Routing路由(深入解析路由系统架构原理)http://wangqingpei557.blog.51cto.com/1009349/1312422

    阅读目录: 1.开篇介绍 2.ASP.NET Routing 路由对象模型的位置 3.ASP.NET Routing 路由对象模型的入口 4.ASP.NET Routing 路由对象模型的内部结构 4 ...

  6. NET/ASP.NET Routing路由(深入解析路由系统架构原理)(转载)

    NET/ASP.NET Routing路由(深入解析路由系统架构原理) 阅读目录: 1.开篇介绍 2.ASP.NET Routing 路由对象模型的位置 3.ASP.NET Routing 路由对象模 ...

  7. ASP.NET Routing

    ASP.NET Routing Other Versions   ASP.NET routing enables you to use URLs that do not have to map to ...

  8. 一、ASP.NET Routing路由(深入解析路由系统架构原理)

    阅读目录: 1.开篇介绍 2.ASP.NET Routing 路由对象模型的位置 3.ASP.NET Routing 路由对象模型的入口 4.ASP.NET Routing 路由对象模型的内部结构 4 ...

  9. 001. Asp.Net Routing与MVC 之(基础知识):URL

    URL(Uniform Resoure Locator:统一资源定位器)是WWW页的绝对地址.URL地址格式排列为:scheme://host:port/path. 例如 http://www.zn. ...

随机推荐

  1. matlab各格式数据读取与保存函数

    数据处理及matlab的初学者,可能最一开始接触的就是数据的读取与保存: %matlab数据保存与读入 function datepro clear all; %产生随机数据 mat = rand(, ...

  2. Hbase的WAL在RegionServer基本调用过程

    版权声明:本文由熊训德原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/221 来源:腾云阁 https://www.qclo ...

  3. 如何让popWindow显示在view上方

    看了bilibili的客户端搜索按钮,很喜欢大爱!自己也想做个类似的(相似度 10% 哈哈) popWin的出现退出动画也可以自己设定,用过其方法setAnimationStyle(R.style.x ...

  4. 根据屏幕的宽度使用不同的css-文件

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  5. uva 1660 & poj 1966(点连通度)

    Cable TV Network Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 4267   Accepted: 2003 ...

  6. 初学DOM树解析xml文件

    做了一次设计模式实验的题目: 某软件公司为新开发的智能手机控制与管理软件提供了一键备份功能,通过该功能可以将原本存储在手机中的通信录.短信.照片.歌曲等资料一次性全部拷贝到移动存储介质(例如MMC卡或 ...

  7. sqlite以及python的应用

    有点乱,自己平时,遇到了就记下来,所以没整理. 数据库sqlite,以及Qt对数据库的操作 sql学习网址: sqlite官网:http://www.sqlite.org http://www.w3s ...

  8. 苹果5S指纹扫描识别传感器Touch ID有利于iPhone的安全性

    iPhone5S新增的指纹扫描识别传感器 Touch ID,黑客花了大量的时间表明指纹验证是可以被破解的.即使它可能被黑客攻击,对iPhone5S的安全性而言,仍然具有极大的好处. 为什么一个容易被破 ...

  9. 常用排序算法的Java实现 - 1

    学习编程语言时, 我们会接触到许多排序算法, 这里总结了一下常见的排序算法. 不定期更新. * 其实在Java中存在如Collections.sort()这样的方法来自动为我们排序, 不过学习排序算法 ...

  10. VMware Workstation 10.0.4.2249910 CN

    VMware Workstation 10.0.4.2249910.exe Workstation10.0.4修复了微软Windows 8.1和Windows Server 2012操作系统中的内存问 ...