【问题标题】:Show two tables in the view using data from the same model, with one containing duplicates while the other has distinct rows使用来自同一模型的数据在视图中显示两个表,其中一个包含重复项,而另一个包含不同的行
【发布时间】:2018-02-13 13:07:52
【问题描述】:

我在一个视图中有两个表,第一个显示使用此控制器的查询结果:

控制器:

public ActionResult ResultDetails(int? id)
{
var tenders = from t in db.Tenders.Include(t => t.Compendium).Include(t => t.TrainerRegistration) select t;            

tenders = tenders.Where(q => q.Compendium.InstitutionID==id);

return View(tenders.ToList());
}

在第一个表中显示数据非常简单。但是,当我尝试在第二个表中使用相同的脚手架剃刀语法时,这会返回重复的行,特别是在我的 item2.TrainerRegistration.NTTC 列中

@foreach (var item2 in Model)
{
    <tr>
        <td nowrap>
            @Html.DisplayFor(modelItem => item2.TrainerRegistration.Trainer.TrainerName)
        </td>
        <td nowrap>
            @Html.DisplayFor(modelItem => item2.TrainerRegistration.Qualification.Title)
        </td>
        <td nowrap>
            @Html.DisplayFor(modelItem => item2.TrainerRegistration.NTTC)
        </td>
    </tr>
}

控制器中的查询确实会返回重复项,但是如何删除第二个表中的这些重复行?我尝试将 GroupBy() 或 Distinct() 添加到我的 NTTC 属性,但我无法让它以这种方式或其他变体工作:

@foreach (var item2 in Model.GroupBy(x => x.TrainerRegistration.NTTC).ToList())

经过多次猜测,更改@foreach 中的参数总是会以一种或另一种方式影响@Html.DisplayFor(modelItem => item2.****)。我已经猜到了这一点,如果有人能指出我这样做的正确方法,我将不胜感激。

【问题讨论】:

    标签: asp.net-mvc linq razor html-helper distinct-values


    【解决方案1】:

    我能够通过在重复 TrainerRegistrationID 的行上使用 First() 来解决我的问题

     @foreach (var item2 in Model.GroupBy(x => x.TrainerRegistrationID).Select(y => y.First()))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-26
      • 1970-01-01
      相关资源
      最近更新 更多