Я использую MVC6 и Entity Framework 7.Отображение нескольких таблиц на странице просмотра
В основном у меня есть 2 основных стола. Я хочу показать таблицу 1 в списке, указанном на странице просмотра, а затем вытащить из таблицы 2 во время циклического перехода по таблице 1.
Итак, когда я показываю данные таблицы 1, мне нужно найти таблицу 2 данных, которые соответствуют идентификатору записи.
Это 2 модели. Школа
public class School
{
[Key]
public int SchoolId { get; set; }
[Required]
[Display(Name = "Name")]
public string SchoolName { get; set; }
}
Match
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 является текущим сезоном, поэтому я могу» t свяжите эти таблицы вместе. Возможно, я неправильно настрою установку данных.
Это 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)
}
Это где я путаюсь, я знаю, что код не работает и не будет работать. Мне нужно отправить список школ и матчей. Сначала пройдите по школам, затем пройдите через матчи в школах, чтобы отобразить их соответственно.
Ваше мнение ожидает IEnumerable из SchoolHomeViewModel, но вы передаете это только один объект SchoolHomeViewModel. – Chad
Здесь я смущаюсь, мне нужно отправить список школ и матчей. Сначала пройдите по школам, затем пройдите через матчи с школами, чтобы отобразить их соответственно. –