C# 删除MVC WebShop中的列表项
我正在为我的类做一个webshop项目,但是我在删除中有一个错误,异常发生在这一行C# 删除MVC WebShop中的列表项,c#,asp.net-mvc,session,webshop,C#,Asp.net Mvc,Session,Webshop,我正在为我的类做一个webshop项目,但是我在删除中有一个错误,异常发生在这一行if(cart[index].Amount==1) 它表示在mscorlib.dll中发生了“System.ArgumentOutOfRangeException”类型的异常,但未在用户代码中处理 private int存在(int id) { 列表购物车=(列表)会话[“购物车”]; for(int i=0;i
if(cart[index].Amount==1)
它表示在mscorlib.dll中发生了“System.ArgumentOutOfRangeException”类型的异常,但未在用户代码中处理
private int存在(int id)
{
列表购物车=(列表)会话[“购物车”];
for(int i=0;i
索引
可能比列表中的项目数大一些。确保传递的是基于索引的零值,例如:0表示第一个,1表示第二个,依此类推。在“if(cart[index].Amount==1)”之前添加验证。可能您得到的是索引-1或“购物车”长度为零。
private int isExisting(int id)
{
List<Item> cart = (List<Item>)Session["cart"];
for (int i = 0; i < cart.Count; i++)
{
if (cart[i].Cl.Id == id)
return i;
}
return -1;
}
public ActionResult Delete(int idDelete)
{
int index = isExisting(idDelete);
List<Item> cart = (List<Item>)Session["cart"];
if (cart[index].Amount == 1) {
cart.RemoveAt(index);
Session["cart"] = cart;
}else
{
cart[index].Amount--;
Session["cart"] = cart;
}
return View("Order");
}