【问题标题】:navigation menu doesn't redirect to the given value导航菜单不会重定向到给定值
【发布时间】:2011-03-18 08:54:58
【问题描述】:

我遇到的问题涉及导航菜单中的重定向。我想动态创建一个导航菜单。根据用户的角色,我们可以看到所需的导航菜单项。 目前我使用:

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

在 url 栏中,它实际上显示 url 后跟一个 # 时单击,然后重定向到议程页面。

关于如何解决这个问题的任何想法?我尝试找到一种将导航链接也放入 login.aspx.cs 代码的方法,但找不到引用 NavigationMenu 的正确方法,不知道这是否有帮助。提前谢谢你。

【问题讨论】:

    标签: c# redirect navigation


    【解决方案1】:

    查看新建MenuItem的参数。

    当仅传递 2 个参数时,您正在填充 text 和 value 参数。您要传递的是 navigateUrl 参数。这仅在传递 imageURL 参数(可以为空)时可用。

    以下内容应该可以解决您的问题。

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

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 是的,我可以这样做,但没有办法让它工作吗?:)
      【解决方案3】:

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

      NavigationMenu.visible = false;
      

      MenuAdmin.visible = true;
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-01
        • 2012-06-14
        • 1970-01-01
        • 2014-12-31
        • 1970-01-01
        相关资源
        最近更新 更多