В нашем приложении MVC4 моя база данных имеет таблицу заказов, таблицу продуктов и таблицу категорий. Каждый заказ имеет продукт (плюс количество) в отношении внешнего ключа, а продукт относится к категории с внешним ключом.Цикл Foreach не отображает первую запись
Таким образом, заказ имеет OrderId, ProductId (FK to Product), данные плюс количество, а Product имеет ProductId, Name и CategoryId (FK для категории), а Category имеет CategoryId и имя.
Теперь мы составили «список покупок», который отображает категории, которые заказываются в течение дня, и отображает продукты под названием категории.
Чтобы отобразить только продукты этой даты мы используем цикл Еогеаспа ниже:
@model Tuple<List<myproject.Models.Order>, List<myproject.Models.Order>>
@foreach (var item1 in Model.Item1)
{
if (item1.Date.ToString("d").Equals(DateTime.UtcNow.Date.ToString("d")))
{
<tr>
<td>
<h3>@Html.DisplayFor(catName => item1.Product.Category.Name)</h3>
</td>
</tr>
}
foreach (var item2 in Model.Item2)
{
if (item2.Product.Category.Name.Equals(item1.Product.Category.Name) &&
item2.Date.ToString("d").Equals(DateTime.UtcNow.Date.ToString("d")))
{
<tr>
<td>
@Html.DisplayFor(productName => item2.Product.Name)
 (x @Html.DisplayFor(quantity => item2.Quantity))
</td>
</tr>
}
}
}
для отображения категорий и продуктов в категории он пропускает первое название категории в списке. Выход:
Apple (x 1)
Banana (x 1)
Snacks
Fries (x 3)
Hamburger(x 1)
Veggies
Tomato (x 1)
вместо
Fruit
Apple (x 1)
Banana (x 1)
Snacks
Fries (x 3)
Hamburger(x 1)
Veggies
Tomato (x 1)
Я ломать голову над этим в течение последнего часа. Может кто-нибудь объяснить, почему он не отображает запись для «фруктов»?
@HenkHolterman ??? –
Да, '???' - это все, что мы знаем о ваших классах и данных. –
А [этот вопрос] (http://stackoverflow.com/questions/19903934/grouping-orders-by-category-in-mvc4-view) содержит дополнительную информацию о данных. –