ASP.NET MVC appikation - Shoppingcart.
Hej Folkens, nogen der ud fra koden hurtig kan komme med lidt feedback. Jeg har fulgt en tutorial på youtube på hvordan man opsætter en indkøbskurv i MVC ved hjælp af sessions.Mit problem opstår i Delete metoden, hvor jeg forsøger at fjerne items fra en Liste (List). Men af en eller anden grund fjerne den alle items frem for en af gangen.
Tror lidt problemet ligger i at der mangler et loop enten for eller foreach. Men kan ikke helt finde ud af det.
Men her er eksempel på alt min kode fra controlleren.
<code>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Outlet.Models.Database;
namespace Outlet.Controllers
{
public class ShoppingCartController : Controller
{
public Connection db = new Connection();
// GET: Cart
public ActionResult Index()
{
return View();
}
private int isExisting(int id)
{
List<Item> cart = (List<Item>)Session["cart"];
for (int i = 0; i < cart.Count; i++)
if (cart[i].Product.productId == id)
return i;
return -1;
}
public ActionResult Delete(int id)
{
int index = isExisting(id);
List<Item> cart = (List<Item>)Session["cart"];
cart.RemoveAt(index);
//var lstSlet = cart.Where(x => x.Product.productId == id);
//cart.ForEach(x => cart.Remove(x));
Session["cart"] = cart;
return View("Cart");
}
public ActionResult OrderNow(int id)
{
if (Session["cart"] == null)
{
List<Item> cart = new List<Item>();
cart.Add(new Item(db.Products.Find(id), 1));
Session["cart"] = cart;
}
else
{
List<Item> cart = (List<Item>)Session["cart"];
int index = isExisting(id);
if (index == -1)
cart.Add(new Item(db.Products.Find(id), 1));
else
cart[index].Quantity++;
Session["cart"] = cart;
}
return View("Cart");
}
}
}
</code>