网址与查询路由

时间:2012-09-11 12:11:55

标签: c# asp.net url-routing

参考This questionScottGu's Documentation,我已成功为我的网站的会员资料页面发送了一个网址。

我的页面将~/page/MemberName重定向到~/page/Default.aspx,用户MemberName可以请求信息。
到目前为止,这种方法运作良好。

我现在需要一种方法来允许用户编辑他们的数据,并希望像~/page/MemberName/Private那样访问它。 Private标记会告诉用户可以编辑其内容的页面。

1 个答案:

答案 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" }
    });

值得注意的是,您可能希望对此进行相当好的测试,因为最终可能会出现过于严格的路由规则。

相关问题