C# 删除MVC 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

我正在为我的类做一个webshop项目,但是我在删除中有一个错误,异常发生在这一行
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"); 

        }