C#使用foreach访问层次结构的子成员
我正在尝试为下面的html razor进行Foreach工作。在一天结束时,我希望ShoppingCart成为Cartline的列表。我想去掉[0]语句,并使其变为变量。任何解决方案或优化方法都会有所帮助。也可以随意编辑该类C#使用foreach访问层次结构的子成员,c#,razor,asp.net-core,tag-helpers,C#,Razor,Asp.net Core,Tag Helpers,我正在尝试为下面的html razor进行Foreach工作。在一天结束时,我希望ShoppingCart成为Cartline的列表。我想去掉[0]语句,并使其变为变量。任何解决方案或优化方法都会有所帮助。也可以随意编辑该类 class ShoppingCart { public IList<CartLine> Items { get; } = new List<CartLine>(); public ShoppingCart() {} } publi
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>
类购物车
{
公共IList项{get;}=new List();
公共购物车(){}
}
公共类CartLine
{
公共int CartLineId{get;set;}
公共产品产品{get;set;}
公共整数数量{get;set;}
}
@模型IEnumerable
@foreach(模型中的var项目)
{
@Html.DisplayFor(modelItem=>item.Items[0].Product)
所以您需要一个嵌套的foreach:
@foreach (var cart in Model)
{
@foreach (var line in cart.Items )
{
@Html.DisplayFor(modelItem => line.Product)
}
}
因此,您需要一个嵌套的foreach:
@foreach (var cart in Model)
{
@foreach (var line in cart.Items )
{
@Html.DisplayFor(modelItem => line.Product)
}
}
迭代列表元素,而不是类:
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>
类购物车
{
公共IList项{get;}=new List();
公共购物车(){}
}
公共类CartLine
{
公共int CartLineId{get;set;}
公共产品产品{get;set;}
公共整数数量{get;set;}
}
@购物车模型
@foreach(Model.Items中的var项)
{
@DisplayFor(modelItem=>item.Product)
迭代列表元素,而不是类:
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>
类购物车
{
公共IList项{get;}=new List();
公共购物车(){}
}
公共类CartLine
{
公共int CartLineId{get;set;}
公共产品产品{get;set;}
公共整数数量{get;set;}
}
@购物车模型
@foreach(Model.Items中的var项)
{
@DisplayFor(modelItem=>item.Product)
缩写为只显示循环,你在其中构建html必须有一个更简单的方法,我只是想创建一个同义词(cartline列表)=ShoppingCart,现在我必须进行双foreach,希望有一个C#库函数可以创建同义词。我不能这样做吗?使用ShoppingCart=IEnumerable;缩写为只显示循环,你在其中构建html必须有一个更简单的方法,我只是尝试创建同义词(Cartline列表)=ShoppingCart,现在我必须进行双foreach,希望有一个C#库函数可以创建同义词,我不能这样做吗?使用ShoppingCart=IEnumerable;