千家信息网

ASP.NET4中的URL Routing怎么使用

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍"ASP.NET4中的URL Routing怎么使用",在日常操作中,相信很多人在ASP.NET4中的URL Routing怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的
千家信息网最后更新 2026年11月02日ASP.NET4中的URL Routing怎么使用

这篇文章主要介绍"ASP.NET4中的URL Routing怎么使用",在日常操作中,相信很多人在ASP.NET4中的URL Routing怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"ASP.NET4中的URL Routing怎么使用"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

什么是URL Routing

首先,URL routing其实在ASP.NET 5 SP1中就被引入了,但是介于之前一直没有用到,况且微软的很多关于ASP.NET 4的介绍都把这作为一新的功能,因此就把题目取为这个吧。
之前,一个典型的ASP.NET的URL通常如下http://www.myexample.com/salesreport.aspx?year=2009

在这个URL中的salesreport.aspx代表的是一个真实存在的物理文件,后缀.aspx在url中的存在不仅完全没有意义,而且使得这个url不是SEO-friendly的。而使用URL Routing之后,我们就可使用如下更简洁明了的地址来访问了,http://www.myexample.com/salesrepot/2009

使用Route Engine进行URL Mapping

在asp.net mvc中,通过MapRoute将url映射到相应的controller和action, 而在web form中,在Global.assx的Application_Start中,我们通过MapPageRoute来将url映射到一个页面上

void RegisterRoutes(RouteCollection routes)   {      routes.MapPageRoute("SalesRoute", "SalesReport/{year}", "~/sales.aspx");                                  }

MapPageRoute这里使用了三个参数,***个是给这个Route的命名,第二个是这个URL的映射Pattern, 而***一个就是对应的ASPX页面。除了这个最常用直接的方法之外,还可以使用其重载的其它方法,来个route设置default值,添加各种约束条件,如下面的这一个

void RegisterRoutes(RouteCollection routes)   {    routes.MapPageRoute("SalesRoute",                           "SalesRoute/{year}",                             "~/sales.aspx", true,                          new RouteValueDictionary{                               { "year", DateTime.Now.Year.ToString()}},                                                                    new RouteValueDictionary{                              { "year", @"\d{4}" } });   }

相比于***个route,这个多了三个参数,***个为boolean值,后面两个为RouteValueDictionary, 其中***个就指定了一个default值,而***一个就是一个约束,通过正则表达式约束了参数year必须是四位的数字。

在将SalesRoute/2009成功的映射到sales.aspx页面之后,如何在sales的code中获取这个"2009"值呢?通过Page类的RouteData来获取

protected void Page_Load(object sender, EventArgs e)   {       string year = RouteData.Values["year"] as string;                                                    }

使用Routing Engine生成URL

除了解析URL之外,我们同时可以生成这些简洁明了的URL, 如下面的代码

RouteValueDictionary parameters = new RouteValueDictionary   {   { "year", "2008" },   { "category", "recreation" }  };    VirtualPathData vpd = RouteTable.Routes.GetVirtualPath(null, "SalesRoute", parameters);                      hyperLnk.NavigateUrl = vpd.VirtualPath;

这里的SalesRoute就是我们在Application_Start中注册过的那个Route。 值得注意的是,在SalesRoute的Pattern中,我们并没有"{category}",那么RouteEngine怎么处理这个值呢?这时,category就为被作为一个querystring添加到url中,生成的URL将会是这样的:http://www.myexample.com/salesreport/2009?category=recreation

此外,如果在这个sales页面上加一个button,这个button对应的url会不会也会如上面的url那样简洁呢?答案是肯定的。但是是通过在Form标签中,指定Action来实现页面的回发。

到此,关于"ASP.NET4中的URL Routing怎么使用"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

页面 学习 简洁 参数 就是 方法 面的 生成 简洁明了 三个 明了 更多 帮助 实用 成功 接下来 两个 代码 代表 典型 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 与互联网科技公司 互联网科技集团 小马过河互联网科技 上海喔噻互联网科技 大白互联网科技 科技大学互联网专业好不好 互联网科技公司需要的职位 西藏七维空间互联网科技有限公司 互联网教育科技公司vipkid 广州市恰铎互联网科技有限公司 河南住房之家互联网科技 工业互联网等科技实现智能化赋能 上海科技产业互联网平台 互联网第三次科技革命特征 富国互联网金融科技混合基金 宇信科技在杭州互联网排第几 2021世界互联网领先科技成果发布 互联网硬科技公司 互联网高科技行业有哪些企业 前海云享互联网科技 新华互联网科技学院 沃里互联网科技 撒么互联网科技公司 四个字互联网科技公司取名 崇明区互联网教育科技售后服务 美国互联网科技公司 深圳互联网科技园地址 盐城市攀科互联网科技有限公司 陕西彩京云互联网科技有限公司 10位科技互联网大佬
0