C# 带查询的Url路由
关于和,我已成功地为我的站点的成员配置文件页面路由了一个Url 我的页面将C# 带查询的Url路由,c#,asp.net,url-routing,C#,Asp.net,Url Routing,关于和,我已成功地为我的站点的成员配置文件页面路由了一个Url 我的页面将~/page/MemberName重定向到~/page/Default.aspx,该页面使用成员名称请求信息。 到目前为止,这种方法一直运作良好 我现在需要一种方法来允许用户编辑他们的数据,并希望它像~/page/MemberName/Private一样被访问。“代码>私下< /COD>标签将告诉页面用户可以编辑他们的内容。,我会考虑做什么建议和使用角色。 您只需要设置您的路由,以便在URL中包含额外的信息 routes.
~/page/MemberName
重定向到~/page/Default.aspx
,该页面使用成员名称
请求信息。到目前为止,这种方法一直运作良好
我现在需要一种方法来允许用户编辑他们的数据,并希望它像
~/page/MemberName/Private
一样被访问。“代码>私下< /COD>标签将告诉页面用户可以编辑他们的内容。,我会考虑做什么建议和使用角色。
您只需要设置您的路由,以便在URL中包含额外的信息
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" }
});
值得注意的是,您可能希望很好地测试这一点,因为您可能会得到一个过于严格的路由规则。您不能设置用户角色并从中提供编辑权限吗?如果您使用MVC,您可以设置您的controlle操作或将DataAnnotation属性[Authority]分类为read,我使用自己的基于SQL的授权,我已经将路由更改为
routes.MapPageRoute(“,”page/{address}/{data}“,“~/page/Default.aspx”)代码>,并添加了string extraData=Page.RouteData.Values[“data”].ToString()代码>。现在我得到了一个对象引用,没有设置为对象的实例。
只要我想转到/User/,就可以找到资源。
当我尝试转到/User/Private时。