我遇到的问题涉及导航菜单中的重定向问题。我想动态创建一个navmenu。根据用户的角色,我们可以看到所需的导航菜单项。 目前我使用:
if (found)
{
if (admin == true)
{
NavigationMenu.Items.Add(new MenuItem("Agenda", "/AdminPages/Agenda.aspx"));
NavigationMenu.Items.Add(new MenuItem("Add Product", "/AdminPages/ProductToevoegen.aspx"));
}
else if (user == true)
{}
我已将这段代码放在我的Site.master.cs中,但我的login.aspx.cs代码中也有一个控件,根据管理员或用户登录后对某个页面执行Response.Redirect("~/AdminPages/Agenda.aspx");
现在我遇到的问题是,当我登录时,一个部件工作,所以它控制角色并添加所需的导航菜单项。但是,当我在“添加产品”链接上单击时,它不会将我重定向到该页面。它一直将我重定向到:
http://localhost:52853/AdminPages/Agenda.aspx
在网址栏中,它实际显示的网址在点击后显示#,然后重定向到“日程”页面。
有关如何解决此问题的任何想法?我试图找到一种方法将导航链接放在login.aspx.cs代码中,但无法找到引用NavigationMenu的正确方法,不知道是否可以提供任何帮助。提前谢谢。
答案 0 :(得分:1)
查看用于创建新MenuItem的参数。
当只传递2个参数时,您将填充文本和值参数。您要传递的是navigateUrl参数。这仅在传递imageURL参数(可以为空)时可用。
以下内容应该可以解决您的问题。
NavigationMenu.Items.Add(new MenuItem("Agenda", "", "", "/AdminPages/Agenda.aspx"));
希望这有帮助。
答案 1 :(得分:0)
我建议使用标准的siteMap对象和RoleProvider。并阅读一些关于安全修整的内容(您可以在站点地图节点上指定哪些角色可以访问哪些站点)。
答案 2 :(得分:0)
Hm可能不是正确的方法,但我修复了它在site.master.aspx文件中创建另一个菜单,例如MenuAdmin。 <在我后面的代码中设置了
NavigationMenu.visible = false;
和
MenuAdmin.visible = true;
似乎工作正常,做了它现在需要做的事情;)