【发布时间】:2015-11-05 10:58:07
【问题描述】:
我有一个Login page,在登录时它会将用户带到Home Page,其中dynamic menu 已加载。问题是当用户单击menulink 之一时,loaded menu 不可见
这是因为我在Home controller的Index action里面写了代码。
所以我的问题是我应该在哪里写 logic for dynamic menu 以便在单击菜单链接时可以访问它。
_Layout.cshtml 加载菜单的文件
@model SMS.Models.ViewModel.DashboardVM
@if (Model != null && Model.MenuParentList.Count > 0)
{
<!-- Sidebar Menu -->
<ul class="sidebar-menu">
<li class="header">MAIN NAVIGATION</li>
<li class="active">
<a href="#">
<i class="fa fa-dashboard"></i> <span>Dashboard</span>
</a>
</li>
@foreach (var parentItem in Model.MenuParentList)
{
<li class="treeview">
<a href="#">
<i class="fa fa-th"></i>
<span>@parentItem.MenuParentName</span>
<i class="fa fa-angle-left pull-right"></i>
</a>
<ul class="treeview-menu">
@Html.Partial("_MenuParent", Model.MenuList.Where(x => x.ParentID == parentItem.MenuParentID))
</ul>
</li>
}
</ul>
}
动态菜单的逻辑在这里
public ActionResult Index()
{
var _dashboardVM = new DashboardVM
{
User = _employee.Users.FirstOrDefault(),
MenuParentList=_db.Menus
.Where(x => _parentList.Contains(x.Id))
.Select(x => new SMS.Models.ViewModel.DashboardVM.MenuParent
{
MenuParentID = x.Id,
MenuParentName = x.MenuName
})
.OrderBy(x=>x.MenuParentID)
.ToList(),
MenuList=_employee.Designation.Role.MenuRoles
.Select(x=>x.Menu)
.ToList()
};
}
【问题讨论】:
标签: asp.net-mvc-4