我正在使用MVC6和實體框架7.在查看頁面上顯示多個表
基本上我有2個主表。 我想在查看頁面的枚舉列表中顯示錶1,然後從表2中循環通過表1時從表2中拉出。
因此,當我顯示錶1的數據時,我需要查找與Id匹配的表2數據的記錄。
以下是2個型號。 學校
public class School
{
[Key]
public int SchoolId { get; set; }
[Required]
[Display(Name = "Name")]
public string SchoolName { get; set; }
}
比賽
public class Match
{
[Key]
public int MatchId { get; set; }
public int SchoolId { get; set; }
public int SeasonId { get; set; }
public School School { get; set; }
public Season Season { get; set; }
}
所以我需要從匹配表拉在SchoolId目前學校我顯示相匹配,並且在SeasonId是本賽季這就是爲什麼我可以」把這些表連起來。也許我正在討論數據結構安裝錯誤。
這是我開始研究的ViewModel我認爲我設置錯了。
public class SchoolHomeViewModel
{
public IQueryable<School> SchoolData { get; set; }
public IQueryable<Match> MatchData { get; set; }
}
這裏是控制器代碼。
public IActionResult Index()
{
var vm = new SchoolHomeViewModel();
vm.SchoolData = _context.Schools;
vm.MatchData = _context.Matches
.Where(s => s.SeasonId == 1);
return View(vm);
}
最後查看我無法弄清楚如何編寫正確
@model IEnumerable<SchoolHomeViewModel>
@foreach (var item in Model)
{
@Html.DisplayFor(modelItem => item.SchoolData)
@Html.DisplayFor(modelItem => item.MatchData)
}
這是我越來越糊塗,我知道代碼被打破,將無法運行。我需要發送一份學校和比賽名單。首先循環通過學校,然後循環通過學校內的匹配以相應地顯示。
你的觀點是希望SchoolHomeViewModel的IEnumerable但你通過它只有一個SchoolHomeViewModel對象。 – Chad
這是我感到困惑的地方,我需要發送一份學校和比賽名單。首先在學校中循環,然後在與學校的比賽中循環顯示。 –