asp.net Routing 用法
2024-10-18 18:18:44
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:
如果认为此文对您有帮助,别忘了支持一下哦!
最新文章
- android setDestinationInExternalPublicDir 下载到SD卡根目录
- HDU 5384 AC自动机
- EL表达式有无双引号的区别
- JQuery中serialize()、serializeArray()和param()方法示例介绍
- [CoreOS 转载] CoreOS实践指南(七):Docker容器管理服务
- POJ 1236
- 教程:使用 MongoDB、WCF、OData 和 PowerBI 构建 Azure 上的商业智能解决方案
- C#操作XML的完整例子——XmlDocument篇(转载,仅做学习之用)
- swift 关于 toolbar 学习笔记
- RequireJS学习资料
- Leetcode_119_Pascal's Triangle II
- C#中@的作用
- 黄聪:C#使用GeckoFx拦截监控Http数据
- Node+GitLab实现小程序CI系统
- 【转】Java并发编程:如何创建线程?
- 爬取文件时,对已经操作过的URL进行过滤
- Git换行符是如何精确控制的
- cefglue Flash
- UVa 11488 超级前缀集合(Trie的应用)
- JSP中页面向Action传递参数的几种方式
热门文章
- windows+linux开发环境 解决laravel blade模板缓存问题
- window.onload()和$(function(){});的区别
- JavaEE开发环境搭建(1)---(jdk的安装)
- DELETE与TRUNCATE的区别
- contiki-main.c 文件的进程分析
- i2c设备驱动移植笔记(二)
- css样式设计
- hdu ----3695 Computer Virus on Planet Pandora (ac自动机)
- C#微信开发-微信JS-SDK(1)之通过config接口注入权限验证配置
- $('div','li'),$('div , li'),$('div li')的区别