これは私が非常に長い間取り組んできた問題であり、役に立ちませんでした。
基本的に、ユニットとトレードの 2 つのモデルがあります。必要なのは、ユニットのビューにいるときで、ユニットのページ付きリストが返されます。私が欲しいのは、各ユニットの Trade.Name = model.Name を持つ Trades のエントリ数のカウントを返すテーブルへの追加の列です。
私が抱えている最初の問題は、1 つのビューから 2 つのモデルにアクセスすることです。検索に基づいてたくさんのことを試しましたが、何も機能させることができないようです。
2 番目の問題は、実際にカウントを行う方法です。ビューから直接 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));