我在ASP.Net 4.0网络表单应用程序中。
我已在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滚动到特定的博客。我试图将href设置为类似于我们在MVC中的操作方式:/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}" } });
感谢您的帮助。
答案 0 :(得分:2)
我认为你应该查看物品集合。
this.Context.Items["userid"]
或适用于4.0的RoutData集合
Page.RouteData.Values["userid"]
答案 1 :(得分:1)
使用如下:
routes.MapPageRoute(
"ProductsBrowse",
"browse/{BrowseBy}/{Category}/{*queryvalues}",
"~/Pages/Products/Browse.aspx"
);