【发布时间】:2016-02-07 08:05:37
【问题描述】:
我正在使用 ASP.NET-MVC 4 开发应用程序。在这里,我在布局页面中动态加载菜单。我创建了一个局部视图来动态加载菜单并将其包含在布局页面中,如下所示:
MenuModel.cs:
public class MenuModel
{
public List<MainMenu> MainMenuModel { get; set; }
}
public class MainMenu
{
public int MainMenuID;
public string MainMenuName;
public string MainMenuController;
public string MainMenuAction;
}
PartialController.cs:
using Insights.Models;
[ChildActionOnly]
public ActionResult LoadMenu()
{
MenuModel ObjMenuModel = new MenuModel();
ObjMenuModel.MainMenuModel = new List<MainMenu>();
ObjMenuModel.MainMenuModel = GetMainMenu();
return PartialView(ObjMenuModel);
}
public List<MainMenu> GetMainMenu()
{
List<MainMenu> ObjMainMenu = new List<MainMenu>();
var context = new InsightsEntities();
ObjMainMenu = context.Insights_mMenu.Where(m => m.parentMenuUID == 0).Select(x => new MainMenu()
{
MainMenuID = x.menuUID,
MainMenuName = x.menuName,
MainMenuController = x.menuURLController,
MainMenuAction = x.menuURLAction
}).ToList();
return ObjMainMenu;
}
LoadMenu.cshtml:(部分视图)
@model Insights.Models.MenuModel
<link rel="stylesheet" href="~/MADMIN_files/style(2).css" />
<ul class="sidebar-menu on-click" id="main-menu">
<li class="active">
<div class="sidebar-menu-item-wrapper">
<a href="#">
<i class="icon-home"></i>
<span>Home</span>
</a>
</div>
</li>
@{
foreach (var MenuItem in Model.MainMenuModel)
{
<li class="active">
<div class="sidebar-menu-item-wrapper">
<a href='@Url.Action(@MenuItem.MainMenuAction, @MenuItem.MainMenuController)'><span>@MenuItem.MainMenuName</span></a>
</div>
</li>
}
}
</ul>
_Layout.cshtml:
<div id="sidebar">
@{ Html.RenderAction("LoadMenu", "Partial"); }
</div>
屏幕显示属于菜单“报告”的页面。在这里,我想通过将其 css 更改为“活动”来突出显示单击的菜单。有两个类“活跃”和“不活跃”。当我们动态加载菜单时如何实现这一点?
【问题讨论】:
标签: jquery css asp.net asp.net-mvc asp.net-mvc-4