最近开始做MVC项目,之前一直用的WebForm,对MVC特别陌生,还好项目组有大神,就把大神教的东西一点一点记录下来,是的,不懂就问..
我之前用的方法:
public BaseController()
{
var listFirst= ClientCommon.GetList<Common_Menu>(o => o.SupMenuId == "" && o.MenuStatus == 0);//一级菜单
Dictionary<string, List<Common_Menu>> menuDic = new Dictionary<string, List<Common_Menu>>();
foreach (var item in listFirst)
{
var listSecond = clientCommon.GetList<Common_Menu>(o => o.SupMenuId == item.MenuId && o.MenuStatus == 0);//二级菜单
menuDic.Add(item.MenuId, listSecond);
}
ViewBag.listF = listFirst;
ViewBag.listS = menuDic;
}
前台遍历:
<div class="menu_dropdown">
@foreach (var itemF in menuListF)
{
<dl>
<dt>@itemF.MenuName<i class="iconfont menu_dropdown-arrow"></i></dt>
<dd>
<ul>
@foreach (var itemS in menuListS)
{
if (itemF.MenuId == itemS.Key)
{
foreach (var item in itemS.Value)
{
<li><a href="@item.MenuUrl">@item.MenuName</a></li>
}
}
}
</ul>
</dd>
</dl>
}
</div>
大神指导:
<pre name="code" class="html">后台:
public BaseController()
{
ViewBag.menuList = LoginAdmin.MenuList;//保存在Session里的登录用户对象
}
前台遍历:
<pre name="code" class="html"><div class="menu_dropdown">
@foreach (var item in menu.Where(o => o.SupMenuId == "").OrderBy(o => o.SortId).ThenBy(o => o.MenuId))//按排序字段排序,多种排序用ThenBy
{
<dl>
<dt>@item.MenuName<i class="iconfont menu_dropdown-arrow"></i></dt>
<dd>
<ul>
@foreach (var itemS in menu.Where(o => o.SupMenuId == item.MenuId).OrderBy(o => o.SortId).ThenBy(o => o.MenuId))
{
<li><a href="@itemS.MenuUrl">@itemS.MenuName</a></li>
}
</ul>
</dd>
</dl>
}
</div>