ASP.NET页面路由 - 从目标资源中剥离的URL参数

时间:2013-11-01 05:10:30

标签: c# asp.net routing

ASP.NET c#project ...尝试做一个非常简单的页面路由。

请注意,我知道这实际上并没有进行任何动态路由...我有这样的id硬编码是有原因的。

示例:

  RouteTable.Routes.MapPageRoute("Test", "ABC", "~/Test.aspx?id=101");

我可以浏览http://www.mysite.com/ABC没有问题,页面Test.aspx加载,路由按预期工作。

但是...... id=101去了哪里?

  Request.QueryString["id"] \\ is null...
  Page.RouteData.Values["id"] \\ is null...

如何在我的目标资源中获取路由的硬编码ID?

1 个答案:

答案 0 :(得分:0)

我通过传递DataTokens来实现它。

在我的真实世界场景中,我不知道URL参数是什么(在我的问题中可能只有“id”......或者可能有其他人,有时候没有),所以我必须这样做以下内容:

首先检查是否有“?”路由目标中的字符...如果有,则:

  1. 在“?”之后运行字符串字符通过HttpUtility.ParseQueryString
  2. 然后,遍历该集合并将它们添加到System.Web.Routing.RouteValueDictionary
  3. 然后最后添加路由,并将DataTokens属性设置为RouteValueDictionary