ASP.NET购物车Cookie获取,创建,添加,更新,删除的用法
#region 添加購物車
public void GetShoppingCart(int skuId, int quanlity)
{
HttpCookie cookie = HttpContext.Current.Request.Cookies["myCart"];//獲取cookie
? ? ?var reg = Session["userInfo"] as Registration; 用戶登入狀態
#region ?未登入狀態時
? ? ?if(reg == null)
{
if(cookie == null) //cookie為null時
? ? ? ? ? ?{
cookie =?new HttpCookie("myCart");//創建cookie?
? ? ? ? ? ? ? ? ?cookie.Values.Add(skuId.ToString(), quanlity.ToString());//添加Cookie
? ? ? ? ? ? ? ? ?cookie.Expires = DateTime.Today.AddDays(30);//設置Cookie的過期日期或時間
Response.Cookies.Add(cookie);//將指定的cookie添加到此Cookie集合中
? ? ? ? ? ?}
? ? ? ? ? else if(cookie != null)
? ? ? ? ? {
if(cookie.Values.AllKeys.Contains(skuId.ToString()))//判斷cookie中是否存在此鍵
? ? ? ? ? ? ? ? ?{
cookie.Values.Add(skuId.ToString(), quanlity.ToString());
cookie.Expires = DateTime.Today.AddDays(30);
? ? ? ? ? ? ? ? ? ? ??Response.Cookies.Add(cookie);
? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ?else
? ? ? ? ? ? ? ? ?{
cookie.Values[skuId.ToString()] = (Int32.Parse(cookie.Values[skuId.ToString()]) + quanlity).ToString();
cookie.Expires = DateTime.Today.AddDays(30);
Response.Cookies.Add(cookie);
? ? ? ? ? ? ? ? ?}
? ? ? ? ? }
? ? ?}
? ? ?#endregion
}
#endregion
?
?
#region 更新購物車
public void UpdateShoppingCart(int skuId, int quanlity)
{
HttpCookie cookie = HttpContext.Current.Request.Cookies["myCart"];
Sku skuOne = CommodityInfoManager.GetSkuOneBySkuId(skuId.ToString());
? ? ?var reg = Session["userInfo"] as Registration;
? ? ?if(reg != null)//登入用戶賬號時,直接修改數據庫中的購物車的數量
? ? ?{
ShoppingCarInfoManager.UpdateShoppingCartBySkuIdAndRegisterId(skuId, reg.RegisterId, quanlity);
? ? ?}
? ? ?else
? ? ?{
cookie.Values[skuId.ToString()] = quanlity.ToString();//更新cookie中某一項的對應的cookie的值
? ? ? ? ? ?cookie.Expires = DateTime.Today.AddDays(30);
? ? ? ? ? ?Response.Cookies.Add(cookie);
? ? ?}
}
#endregion
?
#region ?刪除購物車某一個商品
public void DeleteSkuId(int skuId, out int cookiState)
{
cookiState = 1;
? ? ??HttpCookie cookie = HttpContext.Current.Request.Cookies["myCart"];
? ? ??var reg = Session["userInfo"] as Registration;?
#region 登錄賬號
if (reg != null)
{
ShoppingCart shoppingCart = ShoppingCarInfoManager.GetShoppingCartById(skuId, reg.RegisterId);
if (shoppingCart != null)
{
ShoppingCarInfoManager.DeletedShoppingCartBySkuIdAndRegisertId(skuId, reg.RegisterId);
}
}
#endregion
#region 未登錄賬號
else
{
if(cookie != null)
? ? ? ? ? ?{
if(cookie.Values.AllKeys.Length != 1)//判斷cookie里有很多的鍵值對
? ? ? ? ? ? ? ? ?{
if(cookie.Values.AllKeys.Contains(skuId.ToString()))
{
cookie.Values.Remove(skuId.ToString());//移除cookie中指定的某一項
cookie.Expires = DateTime.Today.AddDays(30);
Response.Cookies.Add(cookie);
? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ?}
else
{
cookie.Expires = DateTime.Now.AddDays(-1);//清除cookie
cookiState = 0;
??Response.Cookies.Add(cookie);
? ? ? ? ? ? ? ? ?}
? ? ? ? ? ?}
? ? ?}
#endregion
}
#endregion
?
#region 清空購物車
public void DeletedShoppingCart(out int cookiState)
{
cookiState = 1;
HttpCookie cookie = HttpContext.Current.Request.Cookies["myCart"];
var reg = Session["userInfo"] as Registration;
if (reg != null)//清除購物車
{
List<ShoppingCart> shoppingCarts = ?? ? ? ? ShoppingCarInfoManager.GetShoppingCartsByRegisterId(reg.RegisterId);
foreach (var r in shoppingCarts)
{
ShoppingCarInfoManager.DeletedShoppingCartBySkuIdAndRegisertId(r.SkuId, reg.RegisterId);
}
}
else //清除cookie
{
if (cookie != null)
{
cookie.Expires = DateTime.Now.AddDays(-1);
cookiState = 0;
Response.Cookies.Add(cookie);
}
}
}
#endregion
轉載于:https://www.cnblogs.com/simpleBlue3/p/3888604.html
總結
以上是生活随笔為你收集整理的ASP.NET购物车Cookie获取,创建,添加,更新,删除的用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Typescript 基本类型
- 下一篇: 电影--无极