У меня есть две таблицы. Один из них - бронирование, а другой - курс. Курс может иметь много бронирований. Я хочу посчитать количество заказов для каждого курса и передать его ViewBag. Поэтому я хочу посчитать, сколько пользователей подало заявку на каждый курс.
В этой строке указано общее количество бронирований, но я не могу понять, как это сделать для каждого курса.
ViewBag.Counter = db.Bookings.Count();
Эта строка возвращает все курсы на мою страницу указателя.
IEnumerable<Course> courses = cr.GetCourses();
return View(courses.ToList());
И это контролер, который выполняет эту работу. Я попытался с 2 циклами foreach, но не могу заставить его работать.
public ActionResult Index()
{
Booking booking = new Booking();
Course course = new Course();
List<Course> listCourses = new List<Course>();
List<Booking> bookings = new List<Booking>();
foreach (var item in listCourses)
{
int id = course.CourseId;
foreach (var item1 in bookings)
{
ViewBag.Counter = db.Bookings.Where(x => x.CourseId == id).Count();
}
}
IEnumerable<Course> courses = cr.GetCourses();
return View(courses.ToList());
}
Я ожидаю получить количество пользователей, которые подали заявки на каждый курс, указанный в моей странице указателя. У меня нет исключений или ошибок, и на мой взгляд, ничего не видно. Когда я использую ViewBag.Counter = db.Bookings.Count();
, я получаю общее количество пользователей, которые подали заявки на все доступные курсы. Модель в представлении - это модель курса, которая связана с резервированием с отношением один ко многим.
Это представление для моего ActionResult.
@model IEnumerable<Entities.Course>
@{
ViewBag.Title = "AlgebraSchoolApp";
}
<h2>Dobrodošli!</h2>
<p>
Da bi se prijavili na neki od naših tečajeva kliknite na link prijave:
<button>
@Html.ActionLink("Prijava","Create","Booking")
</button>
</p>
<h2> Svi tečajevi</h2>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.CourseName)
</th>
<th>
@Html.DisplayNameFor(model => model.Description)
</th>
<th>
@Html.DisplayName("Broj polaznika")
</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.CourseName)
</td>
<td>
@Html.DisplayFor(modelItem => item.Description)
</td>
<td>
@ViewBag.Counter
</td>
</tr>
}
</table>
<h2>Slobodni tečajevi</h2>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.CourseName)
</th>
<th>
@Html.DisplayNameFor(model => model.Description)
</th>
<th>
@Html.DisplayNameFor(model => model.Date)
</th>
</tr>
@foreach (var item in Model.Where(x => x.Full == false))
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.CourseName)
</td>
<td>
@Html.DisplayFor(modelItem => item.Description)
</td>
<td>
@Html.DisplayFor(modelItem => item.Date)
</td>
</tr>
}
</table>