我已经开发了一个具有与模型类相同信息的 ViewModel,但是我在 ViewModel 中添加了一个名为 AvgAge(所有人的平均年龄)的字段,我想在 View 中显示一个包含这些字段的表格:名称, 所有人的姓氏和年龄...在表格上方我想显示一个带有所有人平均年龄的标签.. 我需要在 View 中声明 ViewModel 为 IEnumerable 以便我可以遍历列表和在 table 上显示信息.. 直到这里一切正常。现在的问题是当我试图显示年龄平均值的结果时,它只是一个结果..你有什么建议?
我用来显示表格中人员列表的方法:
public List<PersonAgeAvg> AvgAge()
{
var list = db.People.Select(x => new PersonAgeAvg
{
Name = x.Name,
LastName = x.LastName,
Age = x.Age
}).ToList();
return list;
}
我知道我可以通过这样的查询获得平均年龄,但是我应该在哪里使用这个查询呢??:
AvgAge = db.People.Select(p => p.Age).Average()
看法:
@model IEnumerable<AlexMusicStore.ViewModel.PersonAgeAvg>
@{
ViewBag.Title = "GetPersonAgeAvg";
}
<h2>GetPersonAgeAvg</h2>
<p>
@Html.ActionLink("Create new", "Create")
</p>
<label>Average Age: </label>
<table>
<tr>
<th>
@Html.DisplayNameFor(model => model.Name)
</th>
<th>
@Html.DisplayNameFor(model => model.LastName)
</th>
<th>
@Html.DisplayNameFor(model => model.Age)
</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.LastName)
</td>
<td>
@Html.DisplayFor(modelItem => item.Age)
</td>
</tr>
}
</table>
也许一个解决方案应该是只使用 AgeAverage 字段创建一个 ViewModel 但我不知道如何在 View 中显示 AgeAverage 字段以及其他元素 Name、Lastname 和 Age ... 可以显示来自不同的字段ViewModels 在同一个 View 中???
最佳答案
在你看来,你可以做这样的事情
@ var avAge=Model.People.Select(p => p.Age).Average();
关于c# - 在 View 中显示来自 ViewModel 的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36957039/