コントローラーからビューに linq リスト オブジェクトを渡そうとしています。linq オブジェクトには、何らかのエラーをスローしているグループ化が含まれています。グループ化されたオブジェクトをビューに表示したいだけです。linq ステートメントは完全に機能しますが、ステートメントを表示すると機能しません! どんな助けでも大歓迎です!
コントローラ
public ViewResult StudentAttendanceForYear(int id)
{
DateTime finDate = System.DateTime.Today;
DateTime strtDate = DateTime.Today.AddMonths(-6);
var chosenStudent = (from t in db.ClassInstanceDetails.Include("Student")
where (t.Attendance == false) && (t.StudentID == id)
&& (t.ClassInstance.Date > strtDate) && (t.ClassInstance.Date < finDate)
group t by new { t.ClassInstance.Date.Year, t.ClassInstance.Date.Month, t.ClassInstance.Date.Day } into grp
select new
{
absentDate = grp.Key,
numAbsences = grp.Count(t => t.Attendance == false)
}).ToList();
return View(chosenStudent.ToList());
}
見る
視点を変えてみました
@model IEnumerable<System.Linq.IGrouping<object, FYPSchoolApp.DAL.ClassInstanceDetail>>
それでも運が悪く、次のエラーが発生し続けます。
ディクショナリに渡されたモデル アイテムのタイプは 'System.Collections.Generic.List 1[<>f__AnonymousType7
2[<>f__AnonymousType6 3[System.Int32,System.Int32,System.Int32],System.Int32]]', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable
1[System.Linq.IGrouping`2[System.Object,FYPSchoolApp.DAL.ClassInstanceDetail]]' です。