zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    获取最近一周
    git设置个人信息
    ajax的content-download时间过慢问题的解决与思考
    element UI table中字符太多
    git 合并代码冲突最终解决办法
    thinkphp swoole 的使用
    vue elemnet 二进制文件上传
    Python+Selenium+Chrome 笔记(2)Selenium的Hello World
    chrome 自动测试插件
    php-fpm 错误日志 与 php 错误日志的用法
  • 原文地址:https://www.cnblogs.com/simpleBlue3/p/3888604.html
Copyright © 2011-2022 走看看