参考This question和ScottGu's Documentation,我已经成功地为我的网站的会员资料页面路由了一个 URL。
我的页面重定向~/page/MemberName
到~/page/Default.aspx
,用户MemberName
请求信息。
到目前为止,这一直很好。
我现在需要一种方法来允许用户编辑他们的数据,并希望它像~/page/MemberName/Private
. 标签将Private
告诉页面用户可以编辑他们的内容。
参考This question和ScottGu's Documentation,我已经成功地为我的网站的会员资料页面路由了一个 URL。
我的页面重定向~/page/MemberName
到~/page/Default.aspx
,用户MemberName
请求信息。
到目前为止,这一直很好。
我现在需要一种方法来允许用户编辑他们的数据,并希望它像~/page/MemberName/Private
. 标签将Private
告诉页面用户可以编辑他们的内容。
虽然我会考虑做@huMpty duMpty建议的事情并为此使用角色。
您只需要设置路由以在 URL 中包含额外信息。
routes.MapPageRoute("SalesRoute",
"page/{MemberName}/{ExtraData}",
"~/Default.aspx");
然后像访问 MemberName 一样访问它:
Page.RouteData.Values["ExtraData"];
如果您想确保只传入“私有”,您可以通过其中一个重载向路由添加约束。
routes.MapPageRoute("SalesRoute",
"page/{MemberName}/{ExtraData}",
"~/Default.aspx",
false,
new RouteValueDictionary(),
new RouteValueDictionary{
{ "ExtraData", "[P|p]rivate" }
});
值得注意的是,您可能希望对此进行很好的测试,因为您最终可能会得到一个过于严格的路由规则。