导航菜单不会重定向到给定值

时间:2011-03-18 08:54:58

标签: c# redirect navigation

我遇到的问题涉及导航菜单中的重定向问题。我想动态创建一个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的正确方法,不知道是否可以提供任何帮助。提前谢谢。

3 个答案:

答案 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;

似乎工作正常,做了它现在需要做的事情;)