Asp.net RouteTable.Routes.MapPageRoute带有可选参数

Asp.net RouteTable.Routes.MapPageRoute带有可选参数,asp.net,routes,Asp.net,Routes,我正在使用ASP.NET4.0WebForms应用程序 我在Global.asax中已经设置了此路由,并且正在工作: RouteTable.Routes.MapPageRoute("status", "members/{userid}/{status}", "~/members/status.aspx"); “status”参数允许我将页面上的活动选项卡设置为status、blog、photos或about(默认为status) 所以当我发布到:/members/status.aspx?use

我正在使用ASP.NET4.0WebForms应用程序

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

RouteTable.Routes.MapPageRoute("status", "members/{userid}/{status}", "~/members/status.aspx");
“status”参数允许我将页面上的活动选项卡设置为status、blog、photos或about(默认为status)

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

加载页面时,我将看到/members/first.last/status

我需要做的是呈现一些链接,这些链接会将用户带到带有blog id的blog选项卡,这样我就可以在blog选项卡上登陆,该选项卡显示了多个blog,并按id滚动到特定的blog。我正在尝试设置href,类似于我们在MVC中的做法:/members/first.last/blog/1000(其中1000是blog id)-我的另一个尝试是/members/first.last/blog/?id=1000,但我在页面加载的查询字符串键中永远看不到该id

我已尝试添加此路由,但无效:

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

谢谢您的帮助。

我想您应该查看物品收藏

    this.Context.Items["userid"]
或4.0的在线数据采集

    Page.RouteData.Values["userid"]
有关信息,请参见此链接,使用方法如下:

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