Mvc4.0添加商品到Cookie
2018-06-18 03:36:45来源:未知 阅读 ()
/// <summary> /// 添加Cookie /// </summary> /// <param name="gc">GoodsToCookie</param> public static int AddCookies(GoodsCookie gs) { string userID = null; if (HttpContext.Current.Session["hasLogin"] != null) { userID = HttpContext.Current.Session["hasLogin"].ToString();//登录 } ShoppingMallContext db = new ShoppingMallContext(); var cookies = HttpContext.Current.Request.Cookies["MyShoppingCart"]; //创建Cookie并命名 if (cookies == null) { string strCookie = gs.skuID + "-" + gs.count + ","; cookies = new HttpCookie("MyShoppingCart") //对象初始化 { Expires = DateTime.Today.AddDays(1),//过期时间 Value = strCookie//Cookie赋值 }; HttpContext.Current.Response.Cookies.Add(cookies);//添加进Cookie if (userID != null)//如果用户登录了 { SkuShoppingCart sc = new SkuShoppingCart();//初始化购物车类 sc.GoodsSkuID = gs.skuID;//完成之后给类的属性赋值 sc.ShoppingCartID = db.ShoppingCarts//根据用户ID来找相对应的购物车ID .Where(f => f.UserID == userID) .Select(f => f.ShoppingCartID) .Single(); sc.SkuCount = gs.Count;//统计数量 db.SkuShoppingCarts.Add(sc);//添加进数据库 } return 1; } else { if (String.IsNullOrWhiteSpace(cookies.Value))//判断Cookies里值为不为空 { string strCookie = gs.skuID + "-" + gs.count + ","; cookies = new HttpCookie("MyShoppingCart") //对象初始化 { Expires = DateTime.Today.AddDays(1), Value = strCookie }; HttpContext.Current.Response.Cookies.Add(cookies);//添加进Cookie if(userID != null) { SkuShoppingCart sc = new SkuShoppingCart(); sc.GoodsSkuID = gs.skuID;//完成之后给类的属性赋值 sc.ShoppingCartID = db.ShoppingCarts//根据用户ID来找相对应的购物车ID .Where(f => f.UserID == userID) .Select(f => f.ShoppingCartID) .Single(); sc.SkuCount = gs.Count;//统计数量 db.SkuShoppingCarts.Add(sc);//添加进数据库 } return 1; } else//返之 { #region -----添加到字典----- Dictionary<int, int> dict = new Dictionary<int, int>();//初始化字典 string goods = cookies.Value;//声明一个string变量并赋值 为 Cookie goods = goods.Substring(0, goods.Length - 1);//指定字符串长度 string[] skuidArray = goods.Split(',');//拆解字符串并赋值给skuidArray数组 int count = 0;//声明一个Int变量 foreach (var i in skuidArray)//迭代数组 { if(i =="" || i == null)//如果没有值 { continue;//继续 } else//如果有 { string[] strCont = i.Split('-');//拆解字符串 int key = int.Parse(strCont[0]);//第一个 int value = int.Parse(strCont[1]);//第二个 //判断字典里有没有这个key if (dict.ContainsKey(key)) { dict[key] += value;//如果有就叠加 } else//没有 { dict.Add(key, value);//添加进字典 } } } #endregion #region ------- 字典判断 ------- if (dict.ContainsKey(gs.skuID))//如果字典里有这个ID { dict[gs.skuID] += gs.count; count += skuidArray.Count();//就让他们的数量相加 } else { dict.Add(gs.skuID, gs.count); count = skuidArray.Count() + 1;//如果没有,就往字典(dict)添加一个新的 } string countStr = ""; foreach (var v in dict)//再迭代字典拼字符串 { countStr += v.Key + "-" + v.Value + ",";//键值对 } cookies = new HttpCookie(countStr) { Expires = DateTime.Today.AddDays(1), Value = countStr };//拼好了添加到Cookie HttpContext.Current.Request.Cookies.Add(cookies); if (userID != null)//如果用户登录了 { SkuShoppingCart sc = new SkuShoppingCart();//初始化购物车类 sc.GoodsSkuID = gs.skuID;//完成之后给类的属性赋值 sc.ShoppingCartID = db.ShoppingCarts//根据用户ID来找相对应的购物车ID .Where(f => f.UserID == userID) .Select(f => f.ShoppingCartID) .Single(); sc.SkuCount = gs.Count;//统计数量 db.SkuShoppingCarts.Add(sc);//添加进数据库 } return count;//数量 #endregion } } }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- C++17结构化绑定 2020-05-15
- QT使用LIBS添加绝对路径的dll引用 2019-10-18
- 在C++工程上添加CUDA编译环境 2019-09-17
- 在Visual C++ 6.0中为代码添加行号 2019-08-16
- [转]C++ STL list的初始化、添加、遍历、插入、删除、查找、 2019-02-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash