asp.net Routing 用法

本文介绍了ASP.NET 4.0中路由技术的使用方法,包括如何在Global中注册路由表,生成URL以及获取参数值。通过示例代码详细展示了从规则制定到URL生成及参数获取的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  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:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值