Asp.net core mvc Asp.net核心RazorComponent使用动态<;李></李>;

Asp.net core mvc Asp.net核心RazorComponent使用动态<;李></李>;,asp.net-core-mvc,blazor,razor-pages,blazor-webassembly,razor-components,Asp.net Core Mvc,Blazor,Razor Pages,Blazor Webassembly,Razor Components,我正在asp.net核心mvc应用程序中创建RazorComponent 组件中有一个html列表,该列表根据从模型中获取的项目数量动态生成 <ul> @{ foreach (var prod in newProductList) { if (prod.Brand.Equals("1") && prod.Class.Equals("2")) {

我正在asp.net核心mvc应用程序中创建RazorComponent

组件中有一个html列表,该列表根据从模型中获取的项目数量动态生成

<ul>
   @{
     foreach (var prod in newProductList)
      {
        if (prod.Brand.Equals("1") && prod.Class.Equals("2"))
         {
           <li @onclick="(() => AddToSaleList(prod.Product, prod.ProductId, prod.SellRate))">
              <div class="posSelected-item">
                 <span class="posFoodname inline-block"> @prod.Product </span>
                 <span class="inline-block posSeletedPrice">@prod.SellRate</span>
                 <span class="posFoodtotal-item inline-block">
                    <i class="inline-block fas fa-minus" @onclick="() => Quantity(2)"></i>
                    <span class="posincrementItem">@changeQuaitity</span>
                    <i class="inline-block fas fa-plus" @onclick="() => Quantity(1)"></i>
                 </span>
              </div>
            </li>
          }
        }
       }
</ul>
但是,正如您所看到的,由于增量与参数changeQuantity绑定,因此单击任何加号或减号按钮都会同时更改每个列表项的数量


如何修改代码以识别一个列表项目,并在单击列表上的按钮时仅更改该项目的数量。

您需要为每个条目设置一个单独的计数器,因此我建议设置一个我称之为“承运商类别”的类别,以便随每个项目携带数量信息:

class countableProducts {
    Product prod {get; set;}
    int quantity;
}
在初始化过程中:

foreach (var item in newProductList) 
    countableProductsList.Add( new countableProduct() { prod = item });
然后在你的循环中

foreach (var item in countableProductsList){
     // everything looks like item.prod.(property)
     <i class="inline-block fas fa-minus" @onclick="() => item.quantity--;"></i>
     <span class="posincrementItem">@item.quantity</span>
     <i class="inline-block fas fa-plus" @onclick="() => item.quantity++;"></i>
}
foreach(countableProductsList中的变量项){
//一切看起来都像item.prod.(属性)
@项目.数量
}

如果不编写整个程序,我没有足够的代码来制作一个有效的示例,但希望您能看到我的想法。

谢谢您的回答。您和enet的答案都是相同的概念。你先回答的时候我给你打了正确的分数,我给你们两个都投了高票。谢谢。
foreach (var item in countableProductsList){
     // everything looks like item.prod.(property)
     <i class="inline-block fas fa-minus" @onclick="() => item.quantity--;"></i>
     <span class="posincrementItem">@item.quantity</span>
     <i class="inline-block fas fa-plus" @onclick="() => item.quantity++;"></i>
}