C#使用foreach访问层次结构的子成员

我想让Foreach为下面的htmlrazor工作。 在一天结束时,我希望ShoppingCart成为CartLines的列表。 我想摆脱[0]语句,并使其变量。 任何解决方案或最佳方法都会有所帮 随意编辑课程。

class ShoppingCart { public IList Items { get; } = new List(); public ShoppingCart() {} } public class CartLine { public int CartLineId { get; set; } public Product Product { get; set; } public int Quantity { get; set; } } @model IEnumerable @foreach (var item in Model) {   @Html.DisplayFor(modelItem => item.Items[0].Product)  

迭代列表元素,而不是您的类:

 class ShoppingCart { public IList Items { get; } = new List(); 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) {   @Html.DisplayFor(modelItem => item.Product)  

所以你需要一个嵌套的foreach:

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