これが私のシナリオです。寄付者の提供レベルまたは単にそのソート名でグループ化するページを表示しているユーザーに応じて、寄付者を一覧表示するページが必要です。私を投げかけているひねりは、私たちが匿名ドナーをグループ化し、グループ化に基づいてカウントを与えたいということです。
私のコントローラーには
[HttpGet]
public ActionResult Society(string id)
{
var society = _db.ONLINEDR_DONOR_LIST
.Include("ONLINEDR_DONORS")
.Single(s => s.DONOR_LIST_ID == id);
var donors = _db.ONLINEDR_DONORS
.Where(d => d.DONOR_LIST_ID == id)
.OrderBy(d => d.SUBGROUP_SORT)
.ThenBy(d => d.SORT_NAME)
.ToList();
if (User.Identity.Name == "public")
{
//First off, check to make sure the list is viewable.
if (society.PUBLIC_IND == "N")
RedirectToAction("Index", "Home");
donors = _db.ONLINEDR_DONORS
.Where(d => d.DONOR_LIST_ID == id)
.OrderBy(d => d.SORT_NAME)
.ToList();
}
var viewModel = new SocietyDetailViewModel()
{
Society = society,
Donors = donors
};
return View(viewModel);
}
のようなものが欲しいのですが
donors = _db.ONLINEDR_DONORS
.Where(d => d.DONOR_LIST_ID == id)
.GroupBy(d => d.SORT_NAME)
.ToList();
これを自分のビューに渡して、どういうわけかビューに表示することができます
<% if (Model.donor.GroupedByItemCount > 1) { %>
<%: Model.donor.GroupedByItemCount %>
<% } %
(私はまだasp.net MVCとLINQに慣れていないので、私が間違っていることを説明するための役立つ参考資料もいただければ幸いです)。
本当にありがとう。