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
ASP.NET购物车Cookie获取,创建,添加,更新,删除的用法的更多相关文章
- PHP中Cookie的使用---添加/更新/删除/获取Cookie 及 自动填写该用户的用户名和密码和判断是否第一次登陆
PHP中Cookie的使用---添加/更新/删除/获取Cookie 及 自动填写该用户的用户名和密码和判断是否第一次登陆 什么是cookie 服务器在客户端保存用户的信息,比如登录名,密码等 这些数 ...
- 从零开始学 Web 之 jQuery(四)元素的创建添加与删除,自定义属性
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
- Jquery和js实现cookie操作手机浮层广告;附加:js获取、添加、删除cookie
1.jquery cookie包实现手机上的浮层广告 <span style="font-size:18px;">$(document).ready(function( ...
- (转载)html dom节点操作(获取/修改/添加或删除)
DOM 是关于如何获取.修改.添加或删除 HTML 元素的标准,下面为大家介绍下html dom节点操作,感兴趣的朋友可以参考下 HTML DOM 是关于如何获取.修改.添加或删除 HTML 元素 ...
- Dom4j 添加 / 更新 / 删除 XML
1.获得文档 /** *1.获得解析流 *2.解析XML */ 2.添加 /** *1.获取父元素 *2.创建元素 *3.创建属性并添加到元素中 *4.元素添加到根节点 */ 3.更新 /** *1. ...
- DOM 添加 / 更新 / 删除 XML (CURD)
获得Document /** * 获取文档 * 1.获得实例工厂 * 2.获得解析器 * 3.获得document */ 添加结点 /** * 1.获得 ...
- ado.net 批量添加 更新 删除
自曾列就别往下看 别折腾了 使用 SqlBulkCopy ,dataTable 必须跟sql里面的表字段完全一样 下面在sqlserver中演示 mysql 请google MySqlBulkLo ...
- Mysql添加更新删除数据-表
例如 此处拥有一个表名为 uuser 为表添加新数据 ,'); ,'); ,'); 假如只想添加uid和uname ,'小张'); 那么pas自动填充为NULL. 为表更新数据 这里把小王的pas改成 ...
- 原生js封装cookie获取、设置及删除
使用cookie(key,value,options) 参数key,value,options(可选) function cookie(key,value,options){ if(typeof va ...
随机推荐
- [Luogu4447] [AHOI2018初中组]分组
题目描述 小可可的学校信息组总共有n 个队员,每个人都有一个实力值a[i]a[i]a[i].现在,一年一度的编程大赛就要到了,小可可的学校获得了若干个参赛名额,教练决定把学校信息组的nnn 个队员分成 ...
- enable_shared_from_this
头文件<memory> enable_shared_from_this是一个模板类. 使用场景:需要把自己类对象作为参数传给其他函数时,就需要传递一个指向自身的share_ptr. str ...
- 第三方软件 Serv-u提权
Serv-U FTP Server,是一种被广泛运用的FTP服务器端软件,支持3x/9x/ME/NT/2K等全Windows系列.可以设定多个FTP服务器.限定登录用户的权限.登录主目录及空间大小等 ...
- Spring 源码阅读之 深入理解 finishBeanFactoryInitialization
源码入口 上篇博文中我们看到了将Spring环境中的 BeanPostProcessor找出来,添加到BeanFactory中的beanPostProcessors中,统一维护,本片博文继续往下拓展, ...
- fenby C语言 P9
逻辑运算 真1 假0 &&与 真&&真为真 真&&假为假 假&&真为假 假&&假为假 ||或 真||真为真 真||假为真 ...
- Flask源码分析二:路由内部实现原理
前言 Flask是目前为止我最喜欢的一个Python Web框架了,为了更好的掌握其内部实现机制,这两天准备学习下Flask的源码,将由浅入深跟大家分享下,其中Flask版本为1.1.1. 上次了解了 ...
- Vue中Form表单验证无法消除验证问题
iView的表单api给出了一个resetFields方法,用于重置整个表单输入的内容并清除验证提示. 但是有时候需要只消除部分的iview的resetFields方法源码是这样的resetField ...
- [考试反思]1027csp-s模拟测试90:自我
其实这套题很好. 但是这次,在T1爆炸的同时,T2和T3并没有出现能弥补的表现. 在AK仍然存在的同时,我居然连一个AC都没有. 所以最后就是一无是处的一场. 考试结束前估分:100+100+30=2 ...
- [考试反思]0914csp-s模拟测试43:破绽
T1会正解.爆int了,代码里一大堆long long但是有一个地方落了.-70分. 离考试结束还有19秒的时候发现手模样例爆负数了,没来得及改. T2没想.打暴力了.然而实际很好想...早读5分钟就 ...
- Redis实战--Redis整合SpringBoot示例
echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!!! 该文章 ...