.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
值,以便它们在整个站点中持久存在?
使用带有SecurityTrimmingEnabled = "true"的站点地图是一个很好的解决方案。
另外两个需要考虑的替代方案是:
-
移动代码以将菜单构建到母版页中。
-
创建一个基类(
public class BasePage : System.Web.UI.Page
(并从该基类继承所有页面。 将用于生成菜单的代码放入基类中。
我认为您应该考虑将sitemap
与 asp.net 菜单一起使用。如果设置securityTrimmingEnabled="true"
它应该能够根据角色自动显示/隐藏菜单项。
这个链接会给出一个想法