1

我在一个 ASP.Net 4.0 Web 表单应用程序中。

我在 Global.asax 中已经有了这个路由并且正在工作:

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

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

所以当我发布到:/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}" } });

感谢您的任何帮助。

4

2 回答 2

2

我认为您应该查看项目集合。

    this.Context.Items["userid"]

或在 4.0 的 RoutData 集合中

    Page.RouteData.Values["userid"]

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

于 2013-02-12T20:59:16.297 回答
1

使用如下:

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

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

于 2016-02-03T10:38:13.393 回答