2011-03-18 57 views
0

我遇到的问题涉及导航菜单中的重定向问题。我想动态创建一个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

嗯可能不是正确的方式,但我修复它使site.master.aspx文件中的另一个菜单称为MenuAdmin为例。比在后面的代码我已经设置了

NavigationMenu.visible = false; 

MenuAdmin.visible = true; 

看起来工作得很好,做什么需要现在做的;)

0

我会建议使用标准的siteMap对象和RoleProvider。并阅读一些关于安全修整的内容(您可以在您的站点地图节点上指定哪些角色可以访问哪些站点)。

+0

是的,我可以做到这一点,但没有办法让这项工作?:) – Dieter 2011-03-18 09:06:41

1

看看用于创建参数一个新的MenuItem。

当只传递2个参数时,您正在填充文本和值参数。你想传递的是一个navigateUrl参数。这仅在传递imageURL参数(可以为空)时可用。

像下面这样的东西应该可以解决你的问题。

NavigationMenu.Items.Add(new MenuItem("Agenda", "", "", "/AdminPages/Agenda.aspx")); 

希望这会有所帮助。