@foreach不重复相同的值(剃刀)

时间:2014-05-16 17:58:17

标签: c# asp.net-mvc asp.net-mvc-4 razor

我有一些来自数据库的数据:

Type   | Name
----------------
Fruit  | Apple
Fruit  | Manggo
Flower | Rose

我想在cshtml中查看

Fruit  | Apple  

       | Manggo

Flower |Rose

我已经制作了代码

@foreach (var item in Model)
{
    <tr>
      <th>@item.Type</th>
    </tr>

    foreach(var items in Model)
    {    
      <tr>
          <td>@items.Name</td>
      </tr>    
    }     
}

但错了..

2 个答案:

答案 0 :(得分:4)

在内部循环中,获取与外部循环中的项目具有相同类型的项目:

foreach(var items in Model.Where(i => i.Type == item.Type)){

或者,将项目分组:

@foreach (var group in Model.GroupBy(i => i.Type))
 {
  <tr>
  <th>@group.Key</th>
  </tr>

 foreach(var item in group){

    <tr>
        <td>@item.Name</td>
    </tr>

    } 

 }

答案 1 :(得分:1)

你的foreach循环都在模型中循环。你的内部foreach应该遍历外部,因为你有一个嵌套的集合:

@foreach (var item in Model)
 {
     foreach(var innerItem in item){

     } 
 }