.net 导航菜单操作

本文关键字:操作 菜单 导航 net | 更新日期: 2023-09-27 18:34:32

我正在尝试根据用户的角色使用带有不同链接页面的菜单。使用带有 asp:menu 导航的母版页,该菜单仅通过一个链接创建,然后基于用户的角色模式添加链接。

Menu menu = masterPage.FindControl("NavigationMenu") as Menu;
MenuItemCollection menuItems = menu.Items;
MenuItem menuItem;
switch (role)
{
    case "Level 1":          
         break;
    case "Level 2":
         menuItem = new MenuItem("Auditing", "", "", "~/Auditing.aspx");
         menuItems.Add(menuItem);
         menuItem = new MenuItem("Team Manager", "", "", "~/TeamManager.aspx");
         menuItems.Add(menuItem);
         break;
}

这仅适用于当前页面。如果单击菜单上的某个链接,则该新页面只有一个母版页在运行时投放的链接。有没有办法实际更新"导航菜单"asp:menu值,以便它们在整个站点中持久存在?

.net 导航菜单操作

使用带有SecurityTrimmingEnabled = "true"的站点地图是一个很好的解决方案。

另外两个需要考虑的替代方案是:

  • 移动代码以将菜单构建到母版页中。

  • 创建一个基类(public class BasePage : System.Web.UI.Page (并从该基类继承所有页面。 将用于生成菜单的代码放入基类中。

我认为您应该考虑将sitemap与 asp.net 菜单一起使用。如果设置securityTrimmingEnabled="true"它应该能够根据角色自动显示/隐藏菜单项。

这个链接会给出一个想法