这是我一直在努力解决很长时间无济于事的问题。
基本上我有两个模型:Units 和 Trades,我想要的是当我在 View for Units 上时,它会返回一个分页的单位列表。我想要的是表中的一个附加列,它返回 Trades 中每个 Unit 有多少条目 Trade.Name = model.Name 的计数。
我遇到的第一个问题是从一个视图访问两个模型。我已经尝试了很多基于搜索的东西,但似乎无法使任何工作。
第二个问题是如何实际进行计数。是否可以直接从视图中使用 Linq?到目前为止,它对我没有用。
在此先感谢或任何帮助!
单元视图的重要部分:
@model PagedList.IPagedList<FTv2.Models.Unit>
<table style="border-width: 1px; border-color:#000000; border-style: solid; border-top: 2px; border-top-color:#000000; border-top-style: solid;">
<tr>
<th></th>
<th>Name</th>
<th>Type</th>
<th>Skill</th>
<th>Rating</th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@{ ViewBag.ImgUrl = item.Name + ".png";}
<a href="/Images/@ViewBag.ImgUrl" data-lightzap="" ><img src="/Images/@ViewBag.ImgUrl" HEIGHT="66" WIDTH="50" ></a>
</td>
<td>
<a href="/ActiveTrades?Name=@item.Name">@Html.DisplayFor(modelItem => item.Name)</a>
</td>
<td>
@Html.DisplayFor(modelItem => item.Type)
</td>
<td>
@Html.DisplayFor(modelItem => item.Skill)
</td>
<td>
@Html.DisplayFor(modelItem => item.Rating)
</td>
<td>
<!-- this is where I would want the count to go. -->
</td>
</tr>
}
</table>
最后一期,没有在视图中显示任何结果。
这是控制器的相关部分:
var units = db.Units;
var students = db.Units.Select(u => new UnitViewModel()
{
Unit = u,
TradeCount =
db.Movies.Where(t => t.Name == u.Name).Count()
});
return View(students.ToPagedList(pageNumber, pageSize));