首页 > 解决方案 > 如何将项目附加到绑定列表?

问题描述

我有以下型号:

class Order
{
    public List<Product> Products { get; set; }
}

class Products
{
    public int Price { get; set; }
}

在我的剃须刀页面中,我想遍历所有产品并能够将它们添加到我的订单中,如下所示:

int i = 0;
foreach (Product p in AllProducts)
{
    <input asp-for="order.Products[i].Price">
    i++;
}

这在创建新订单时效果很好(当列表 pf 产品为空时),但是当我尝试编辑订单,并且可能添加新产品或编辑现有产品时,我遇到了Index was out of range.异常。显然是因为其中的产品AllProducts比订单Products列表中的产品多。

有没有办法克服这个问题?

标签: c#asp.net-corerazor-pages

解决方案


我们可以通过更新代码来做到这一点。我认为解决了问题。问题出在 foreach 循环中。

  int i = 0;
  foreach (Product p in AllProducts)
 {
    <input asp-for="AllProducts[i].Price">
    i++;
  }

尽管如此,您仍然面临这个问题,请分享剃刀观点。


推荐阅读