C # Доступ к дочерним элементам иерархии с foreach - PullRequest
0 голосов
/ 14 октября 2018

Я пытаюсь заставить Foreach работать для бритвы HTML ниже.В конце дня я хочу, чтобы ShoppingCart был списком CartLines.Я хочу избавиться от оператора [0] и сделать его переменным.Любое решение или оптимальный метод помогут.Не стесняйтесь редактировать класс также.

class ShoppingCart
{
    public IList<CartLine> Items { get; } = new List<CartLine>();

    public ShoppingCart() {}
}

public class CartLine
{
    public int CartLineId { get; set; }
    public Product Product { get; set; }
    public int Quantity { get; set; }
}

@model IEnumerable<ShoppingCart>
@foreach (var item in Model)
{
   <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Items[0].Product)
        </td>

Ответы [ 2 ]

0 голосов
/ 14 октября 2018

Перебор элементов списка, а не вашего класса:

class ShoppingCart
{
    public IList<CartLine> Items { get; } = new List<CartLine>();

    public ShoppingCart() {}
}

public class CartLine
{
    public int CartLineId { get; set; }
    public Product Product { get; set; }
    public int Quantity { get; set; }
}

@model ShoppingCart
@foreach (var item in Model.Items)
{
   <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Product)
        </td>
0 голосов
/ 14 октября 2018

так что вам понадобится вложенный foreach:

@foreach (var cart in Model)
{    
    @foreach (var line in cart.Items )
    {
        @Html.DisplayFor(modelItem => line.Product) 
    }
}
...