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

  • 相关阅读:
    Windows下React Native环境配置
    数据处理函数$.grep,$.map,$.makeArray,sort
    gulp的安装与使用
    模块化管理ajax
    Windows操作系统下ionic开发环境搭建
    css平行四边形与菱形变换
    JavaScript数组排序总结
    JavaScript数组去重总结
    vue之修饰符
    深拷贝、浅拷贝
  • 原文地址:https://www.cnblogs.com/simpleBlue3/p/3888604.html
Copyright © 2011-2022 走看看