0
到目前爲止,我將產品添加到購物車(增加Product.Id
將Cookie使用jQuery)時,使我的網站響應無回傳。如何讓網站響應而不回發?
當用戶訪問Cart/Checkout頁面時,我從控制器的Cookie中讀取所有Id
的記錄,並將所有記錄放入cartList
並將其傳遞給View。
現在我堅持,因爲我不知道如何解決它沒有回發時,我想從購物車中移除產品。
是否有可能做同樣的事情/對應這樣的:
cartList.Remove(db.Products.SingleOrDefault(x=> x.Id == /*Id to remove from cart*/));
在查看
?
我的代碼:
我加Product.Id
到使用jQuery的cookie(獲取IDdata-id="@item.ID"
從foreach循環):
$('.add-to-cart').click(function() {
if ($.cookie("AddedProductId") != null) {
var previousValues = $.cookie("AddedProductId");
$.cookie("AddedProductId", previousValues + '_' + $(this).data('id'));
}else{
$.cookie("AddedProductId", $(this).data('id'));
}
});
這是我如何保持cartList
有附加值的產品,內部控制器,當您訪問購物車/結帳頁面:
public ActionResult Cart(){
var cart = Request.Cookies["AddedProductId"].Value;
String[] elements = Regex.Split(cart, "_");
List<Product> cartList = new List<Product>();
foreach (var item in elements){
cartList.Add(db.Products.SingleOrDefault(x => x.ID == new Guid(item)));
}
return View(cartList);
}
我然後顯示裏面/Cart/View
一個foreach
循環的一切。
什麼來解決這個爲Asp.Net MVC的最佳選擇?
我不能讓它工作,我甚至設置斷點我的控制器,它不會去'刪除'的方法。這也正確完成:'data:$(this).data('id')'?我想在「//你的代碼......」部分放什麼? – fagol
使用'@ Url.Action(「刪除」,「車」)'方法,這將返回你,你應該使用正確的路徑。 也許應用程序被配置爲與[應用路徑(https://msdn.microsoft.com/en-us/library/system.web.httprequest.applicationpath(V = vs.110)的.aspx)。 在'//你的code',是如果以正確的方式消除 – karritos
由於它的工作現在將要進行的操作! – fagol