【发布时间】:2021-01-26 03:21:36
【问题描述】:
以下代码是我当前在剃刀视图中运行的代码。
@foreach (var item in Model.intbyAnalysts.Select(x => x.Name).Distinct())
{
<li>
@Html.DisplayFor(x => item)
</li>
}
这让我找回了我需要的名字。我想知道是否有任何方法可以对此进行计数,以便它可以让我返回名称列表并计算记录数,如下所示:
John 5
Sam 6
Mary 8
etc
它不起作用,但我在想像下面这样的事情:
@foreach (var item in Model.intbyAnalysts.GroupBy(x => x.Name)) {
<td>
@Html.DisplayFor(x => x.item))
</td>
<td>
@Html.DisplayFor(x => x.item.Count())
</td>
}
再一次,这不起作用,但我也在想类似下面的事情:
@foreach (var item in Model.intbyAnalysts.GroupBy(x => x.Name)
.Select(n => new {n.Name, n.Count }))
非常感谢任何帮助工作。
【问题讨论】:
-
您的问题与 MVC 或 Razor 无关。您只需要创建一个模型 IEnumerable 并将其传递给视图。你为什么使用“DisplayFor”,当你说“它不起作用”时——什么不起作用?
-
我想知道是否可以在不制作另一个模型的情况下在 linq 查询中做到这一点。关于 DisplayFor,我不熟悉使用剃须刀页面,因此不确定显示结果的最佳方式是什么。
-
只需使用@符号然后指定数据源,如@Model.Items[0]等。创建单独的模型总是好的......
标签: c# asp.net-mvc linq razor