我有这个问题,直到现在我找不到答案。
我创建了一个自定义购物车应用程序,当我尝试解决最终页面时会出现问题。这个购物车模型就像一个向导,这意味着在到达最后一个(购物车)页面之前有一些页面要通过。
这里的问题是,在开始页面中检查/选择的每个值都保存在Session(Session [“CurrentCartItem”])中。在最终的购物车页面中,“CurrentCartItem”会话中收集的值将被插入“转发器”。
现在的问题是,
仅供参考,我使用Session保存了所有值,而不是数据库。
任何人都可以帮我解决这个问题。也许对于其他人来说,这是一个简单的问题,但对我而言,这是一个尚未解决的问题......: - )
在此之前提前致谢...
答案 0 :(得分:0)
您应该在会话中存储项目列表,以便您可以轻松修改它。一个简单的代码片段将是
// class for representing item within cart
public class ShoppingCartItem { ... }
// helper method to get shopping cart from session
public static List<ShoppingCartItem> GetShoppingCart()
{
var cart = HttpContext.Current.Session["ShoppingCart"] as List<ShoppingCartItem>;
if (null == cart)
{
cart = new List<ShoppingCartItem>();
HttpContext.Current.Session["ShoppingCart"] = cart;
}
return cart
}
// Add to cart
var item = new ShoppingCartItem();
// initialize item
var cart = GetShoppingCart();
cart.Add(item);
// Add to cart snippet
将购物车(列表)绑定到转发器以显示其中的项目。
// remove via index (say 4th item)
var cart = GetShoppingCart();
cart.RemoveAt(3);
// remove via some item property (say product code 'XYZ')
cart.RemoveAt(cart.FindIndex(c => c.ProductCode == "XYZ"));