来自2个不同表格的嵌套foreach

时间:2015-04-05 16:50:37

标签: mysql asp.net-mvc-4

    TitleTable         TextTable
-------------------  ---------------
Id(int)               Id (int)
Title(string)         TitleTableId (int)
                      Text (string)
                      TitleOfText(int)

所以这就是我尝试做的事情: 我有一个包含标题的表(标题表)和另一个包含文本(表格)的表,因此一个标题将有几个文本,这就是为什么我使用2个表。 我可以列出表1这里是代码视图:

@foreach (var item in Model.TitleTable)
  {
     @item.Title
  }  

而不是我需要另一个foreach带来我试过的标题文本;

    @foreach (var item in Model.TitleTable)
    {
      @item.Title

        foreach (var itemDesc in Model.Text.OrderBy(o => o.Id).Where(o => o.Id == item.Id))
         {
             @itemDesc.Text
         }
     }  

并返回null,因为我没有给任何Id返回它只从视图模型中获取它而不是从控制器获取它所以如何到达文本并且它应该在最后看起来像这样;

Title 1
                                   Text 1of title 1
                                   Text 2of title 1
title 2                         
                                   text 1 of title2
                                   text 2 of title2
   @foreach (var item in Model.TitleTable)
   {
      @item.Title

     foreach (var itemDesc in Model.Text.Where(o => o.TitleTable== item.Id))
      {
       @itemDesc.Text
      }
    }  

1 个答案:

答案 0 :(得分:0)

这对我没有意义:

.Where(o => o.Id == item.Id)

您是否将TitleTable.Id值与TextTable.Id值相匹配?也许你的意思是:

.Where(o => o.TitleTableId == item.Id)

假设TextTable.TextTableIdTitleTable.Id的外键,那么这将是您过滤该集合的价值。