簡體   English   中英

如何在foreach循環mvc3中遍歷兩個表的模型

[英]how to iterate through model of two table in foreach loop mvc3

我有鑒於自定義模型而用foreach循環進行迭代的問題。我正在嘗試為剃刀創建動態菜單,這是我的代碼:

模型:

public class MenuCtrlModel

{
    public IList<Menu> menu { get; set; }
    public IList<SubMenu> subMenu { get; set; }
}

控制器:

    public PartialViewResult Index()

    {
        var nuser = dataContext.UserLogins.SingleOrDefault(x => x.nvrchrUsername == User.Identity.Name);
        string[] menu = nuser.vcrMenu.ToString().Split('|').ToArray();

        string[] subMenu = nuser.vcrSubmenu.ToString().Split('|').ToArray();

        MenuCtrlModel menuctrl = new MenuCtrlModel();

        menuctrl.menu = (from varMenu in dataContext.Menus where            menu.Contains( Convert.ToString( varMenu.intMenuID ) ) select varMenu).ToList();

        menuctrl.subMenu=(from varSubmenu in dataContext.SubMenus where 
 subMenu.Contains( Convert.ToString(varSubmenu.intSubMenu ) ) select varSubmenu ).ToList();
    }  

查看:這給了我錯誤

**@model IList<MVCAPP.Models.MenuCtrlModel>
@foreach(var xyz in Model.select(x=>x.menu))

{

    @Html.RouteLink(xyz.Select(x=>x.nvcrMenuName), new { controller = xyz.Select(x=>x.nvcrLink),action=xyz.Select(x=>x.nvcrLink) })}

}
**

我也嘗試過

@foreach(var xyz in Model)

當我嘗試查找諸如Model.Menu之類的菜單列表時,不是菜單未在intellisense **中出現**,請提出如何解決此問題的建議。

謝謝。

由於ModelMenuCtrlModel的列表,每個列表都有一個menu屬性,因此Model.select(x=>x.menu)將返回一個集合的集合。

我認為您想循環瀏覽每個項目,然后循環瀏覽每個項目中的菜單:

@foreach(var menuModel in Model))
    @foreach(var menu in menuModel.menu))    

盡管我無法告訴您該子菜單是如何鏈接的,否則將為您提供更多幫助。

您將需要SelectMany,因為您的模型也是一個集合。

@model IList<MVCAPP.Models.MenuCtrlModel>
@foreach(var menu in Model.SelectMany(x => x.Menu))
{
    @Html.RouteLink(menu.nvcrMenuName, new { controller = menu.nvcrLink, action=menu.nvcrLink })
}

另外, IList<MVCAPP.Models.MenuCtrlModel>是一個錯誤,您的控制器代碼似乎表明您實際上只有一個MenuCtrlModel ,因此模型行需要更正嗎?

@model MVCAPP.Models.MenuCtrlModel
@foreach(var menu in Model.Menu)
{
    @Html.RouteLink(menu.nvcrMenuName, new { controller = menu.nvcrLink, action=menu.nvcrLink })
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM