#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获取,创建,添加,更新,删除的用法相关推荐

  1. PHP中Cookie的使用---添加/更新/删除/获取Cookie 及 自动填写该用户的用户名和密码和判断是否第一次登陆...

    PHP中Cookie的使用---添加/更新/删除/获取Cookie 及 自动填写该用户的用户名和密码和判断是否第一次登陆  什么是cookie 服务器在客户端保存用户的信息,比如登录名,密码等 这些数 ...

  2. ajax添加和删除数据,ajax 添加 更新 删除数据库

    ajax 添加 更新 删除数据库 内容精选 换一换 云审计服务(Cloud Trace Service,CTS)记录了数据安全中心相关的操作事件,方便用户日后的查询.审计和回溯,具体请参见云审计服务用 ...

  3. 2015-07-22 JQuery 第二课(JQ元素获取,添加,删除,判断,遍历,取值,样式设置,改变对象,切换)...

    1.获取元素: 1).size(): 获取元素的个数. $("img").size():获取有多少个img. 2).eq():获取元素. $("img[title]&qu ...

  4. 第一个ASP.net的CRED(创建读取编辑删除)页面

    折腾了2天,终于搞出来了. 要是有书或者老师带的话估计10分钟就搞定了,哎,自学的就是这样啊 前一篇记录了如何引用Entity Framework 的Context类. 但是如何搞定数据库呢?教程里面 ...

  5. Asp.net MVC2.0系列文章-编辑和删除新闻操作

    上一篇文章,我们简单地完成了新闻内容的展示功能(Asp.net MVC2.0系列文章-显示列表和详细页面操作),此篇文章,我们使用Asp.net MVC2.0实现新闻记录的编辑和删除功能. 创建Vie ...

  6. Git系列:如何创建和初始化仓库,添加更新修改

    目录 •写在前面 •创建仓库 •添加文件 •下一步 对Git有了一个大致基本的认识之后,就可以开始使用Git创建我们项目的版本库了,这一篇文章就是简洁明了的介绍创建Git项目仓库的大致过程,包括其中用 ...

  7. ASP.NET 中 Cookie 的基本知识

    简介 Cookie 为 Web 应用程序保存用户相关信息提供了一种有用的方法.例如,当用户访问您的站点时,您可以利用 Cookie 保存用户首选项或其他信息,这样,当用户下次再访问您的站点时,应用程序 ...

  8. Asp.Net操作Cookie总结

    一.什么是Cookie? Cookie是存储在客户端文件系统的文本文件或客户端浏览器对话的内存中的少量数据.它主要用来跟踪数据设置,例如:当我们要访问一个网站网页的时候,用户请求网页时,应用程序可能会 ...

  9. ASP.NET 中 Cookie 的基本知识(转贴)

    地址:http://article.itebook.net/article.php/216.html ASP.NET 中 Cookie 的基本知识 目录 简介 什么是 Cookie? Cookie 的 ...

最新文章

  1. ThreeJS的特效合成器和后期处理通道
  2. 5G LAN — Overview
  3. java swing 传值_java swing 窗体之间怎么传值?
  4. 前端学习(3157):react-hello-react之一个简单的helloworld
  5. php读取excel的数据,php读取excel文件数据
  6. 澳大利亚超市巨头考虑设专门网站 方便代购买奶粉
  7. Opencv实现的简易绘图工具
  8. java简单的新闻分词,文本分析
  9. 移动APP的测试流程及方法
  10. python利用danmu实时获取斗鱼等直播网站字幕
  11. 计算机组成原理 | 穿越功耗墙,我们该从哪些方面提升“性能”?
  12. 学渣的刷题之旅 leetcode刷题 7.整数反转
  13. 如何搭建自动化测试框架
  14. MHA简述与项目案例
  15. oracle怎么赋予系统权限,讲解Oracle系统中用户权限的赋予和查看
  16. Demo:替代_SAP刘梦_新浪博客
  17. 服务器安全篇之一【网络安全】
  18. 怎么将照片压缩变小一点?超实用的几种方法
  19. html div图片垂直居中,css如何让img垂直居中
  20. 【openWrt】随身wifi装openWrt的linux内存不够用?开启swap分区吧

热门文章

  1. 试除法的妙用【O(√N) 复杂度】
  2. python 列表 元组 字符串
  3. 一个有关ajax去获取天气预报然后用echarts展现出来的小demo
  4. ReactiveCocoa源码解读(二)
  5. visual c++ for .net(新语法)
  6. mqtt连接失败_Netty实战:如何让单机下Netty支持百万长连接?
  7. Caddy-基于go的微型serve用来做反向代理和Gateway
  8. 【OpenGL】七、桌面窗口搭建 ( 导入头文件 | 桌面程序入口函数 | 注册窗口 | 创建窗口 | 显示窗口 )
  9. 【数据挖掘】数据挖掘总结 ( 拉普拉斯修正 | 贝叶斯分类器示例2 ) ★
  10. 【Android 应用开发】Android应用的自动更新模块