带有可选参数的RouteTable.Routes.MapPageRoute

问题描述 投票:0回答:2

我正在使用 ASP.Net 4.0 Web 表单应用程序。

我已经在 Global.asax 中设置了此路由并正在工作:

RouteTable.Routes.MapPageRoute("status", "members/{userid}/{status}", "~/members/status.aspx");

“状态”参数可让我将页面上的活动选项卡设置为状态、博客、照片或关于(默认为状态)。

所以当我发布到:/members/status.aspx?userId=first.last

页面加载时我会看到 /members/first.last/status。

我需要做的是渲染一些链接,将用户带到带有博客 ID 的博客选项卡,这样我就可以登陆显示多个博客的博客选项卡,并按 id 滚动到特定博客。我正在尝试设置与 MVC 中类似的 href:/members/first.last/blog/1000(其中 1000 是博客 Id) - 我的另一个尝试是 /members/first.last/blog/?id =1000 但我永远看不到 Page_Load 中查询字符串键中的 Id。

我尝试添加此路由但无济于事:

RouteTable.Routes.MapPageRoute("status",
    "members/{userid}/{status}/{*queryvalues}", "~/members/status.aspx",
    false,
    new RouteValueDictionary { { "id", @"\d{4}" } });

感谢您的帮助。

asp.net routes
2个回答
2
投票

我认为你应该看看物品收藏。

    this.Context.Items["userid"]

或在 4.0 的 RouteData 集合中

    Page.RouteData.Values["userid"]

请参阅此链接了解信息如何:访问路由页面中的 URL 参数


1
投票

使用方法如下:

routes.MapPageRoute(
       "ProductsBrowse",
        "browse/{BrowseBy}/{Category}/{*queryvalues}",
        "~/Pages/Products/Browse.aspx"
    );

Thx:asp.net webforms 路由:可选参数

© www.soinside.com 2019 - 2024. All rights reserved.