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