【问题标题】:ASP.NET Page Routing - URL Parameters stripped from target resourceASP.NET 页面路由 - 从目标资源中剥离的 URL 参数
【发布时间】:2013-11-01 05:10:30
【问题描述】:

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

请注意,我知道这实际上并没有做任何动态路由...我将 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?

【问题讨论】:

  • 打算尝试添加“DataTokens”,看看效果如何......

标签: c# asp.net routing


【解决方案1】:

我通过传递 DataTokens 让它工作了。

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

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

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

【讨论】:

    猜你喜欢
    • 2018-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-18
    • 1970-01-01
    • 2020-04-03
    • 2021-01-24
    • 2021-06-17
    相关资源
    最近更新 更多