【发布时间】:2021-03-02 08:48:25
【问题描述】:
我有一个list<>,我需要将列表的每一行传递给一个存储过程。
我目前有一个 for each 循环来计算循环中的行数并迭代那么多次。但它每次只迭代第一行。相反,我想每次都去下一行。
我正在使用 ASP.NET Core Razor 页面构建一个 Web 应用程序,我不想使用 MVC 架构,因为我觉得它对我来说太复杂了。我不是来自 .NET 背景。请帮忙。
[BindProperty]
public OrderProduct OrderProduct { get; set; }
public async Task<IActionResult> OnPostSaveOrder()
{
if (!ModelState.IsValid)
{
return Page();
}
cart = SessionHelper.GetObjectFromJson<List<OrderProduct>>(HttpContext.Session, "ProductCart");
for (var i = 0; i < cart.Count; i++)
{
objProduct.AddProductsToOrder(OrderProduct);
}
await _context.SaveChangesAsync();
HttpContext.Session.Clear();
return RedirectToPage("./Index");
}
【问题讨论】:
-
objProduct.AddProductsToOrder(OrderProduct);=>objProduct.AddProductsToOrder(cart[i]);然后< cart.Count=><= cart.Count -
老实说,一个简单的
foreach会更好,反正你不需要那个增量。比如:foreach (OrderProduct prod in cart){ objProduct.AddProductsToOrder(prod); } -
@Codexer 你是个传奇人物。惊人的。我喜欢你。自 3 天以来,我一直在努力实现这一目标。这是我在 4 个月前因 Covid 而失业后正在从事的个人项目。你绝对让我开心。继续努力。
-
没问题,很高兴为您提供帮助。
-
仅供参考:由于@Codexer 没有将此作为答案提交,因此我已代表他们提交。这将允许 Sai 接受此答案,并将问题标记为已回答。由于答案不是我的贡献,因此我已将其作为社区 wiki 提交。
标签: c# sql-server foreach asp.net-core-3.1 asp.net-core-razor-pages