0
嗨,我想在佈局頁面中動態加載菜單。動態菜單在mvc中加載不正確?
如
1)AccountsMasters
1.1)AccountsCategory
1.2)Accounts
這裏我打開子菜單即賬戶類別,動態賬戶,但我能無法加載帳戶Master主菜單dynamically.I試圖加載主菜單相同,像子菜單,但其裝載2倍,是 如
1)AccountsMasters
1.1)AccountsCategory
1)AccountsMasters
1.2)Accounts
其負載主菜單兩次
我的表
UID MainMenuName SubMenuName MAINMENIID
1 ACCOUNTSMASTER ACCOUNTS 1個
2 ACCOUNTMASTER ACCOUNTSCATEGORY 1
3 PRODUCTMASTER PRODUCTS 2
4 PRODUCTMASTER產品分類2
我的模型SubMenuViewModel
public class SubMenuviewmodel
{
public string SubMenu { get; set; }
public string ActionName { get; set; }
public string MainMenuName { get; set; }
public string ControllerName { get; set; }
}
菜單模型
public class Menu
{
public Menu()
{
MenuItems = new List<MenuItem>();
SubMenuItems = new List<SubMenuviewmodel>();
}
public int Id { get; set; }
public string Name { get; set; }
public List<MenuItem> MenuItems { get; set; }
public List<SubMenuviewmodel> SubMenuItems { get; set; }
}
我的控制器
public ActionResult SubMenu()
{
var menu = new Menu();
var submenu = db.SubAplicationNames.Select(e => new
{
submenuuid = e.SubAplicationNameID,
submenuname = e.SubMenuName,
submenuparentidd = e.SubAplicationNameID,
mainmenuname=e.ApplicationName
}).ToList();
var submenulist = new List<SubMenuviewmodel>();
for (var item = 0; item < submenu.Count();item++)
{
var submenuitemslist = new SubMenuviewmodel { SubMenu = submenu[item].submenuname.ToString(),MainMenuName=submenu[item].mainmenuname
,ControllerName="",ActionName="" };
submenulist.Add(submenuitemslist);
}
menu.SubMenuItems = submenulist;
return View(menu);
}
我查看代碼
@model DynamicMenuLoading.Models.Menu
@{
Layout = null;
}
<ul>
<li>
@foreach(var item in Model.SubMenuItems)
{
<a href="#">
<span>@item.MainMenuName</span>
</a>
<ul>
<li><a href="@Url.Action(item.ActionName , item.ControllerName)"><i class="fa fa-circle-o"></i>@item.SubMenu</a></li>
</ul>
}
</li>
</ul>
該代碼給出了上面提到的結果,它給出錯誤的輸出。任何人告訴我我做了什麼錯誤。我盡我最大努力解釋了這個問題。任何人都能理解我的問題並幫助我解決這個問題。
提前謝謝..