/// <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(),//过期时间
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 ;
}
else
{ if (String.IsNullOrWhiteSpace(cookies.Value))//判断Cookies里值为不为空
{
string strCookie = gs.skuID + "-" + gs.count + ",";
cookies = new HttpCookie("MyShoppingCart") //对象初始化
{
Expires = DateTime.Today.AddDays(),
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 ;
}
else//返之
{
#region -----添加到字典----- Dictionary<int, int> dict = new Dictionary<int, int>();//初始化字典
string goods = cookies.Value;//声明一个string变量并赋值 为 Cookie
goods = goods.Substring(, goods.Length - );//指定字符串长度
string[] skuidArray = goods.Split(',');//拆解字符串并赋值给skuidArray数组
int count = ;//声明一个Int变量
foreach (var i in skuidArray)//迭代数组
{
if(i =="" || i == null)//如果没有值
{
continue;//继续
}
else//如果有
{
string[] strCont = i.Split('-');//拆解字符串
int key = int.Parse(strCont[]);//第一个
int value = int.Parse(strCont[]);//第二个
//判断字典里有没有这个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() + ;//如果没有,就往字典(dict)添加一个新的
} string countStr = "";
foreach (var v in dict)//再迭代字典拼字符串
{
countStr += v.Key + "-" + v.Value + ",";//键值对
}
cookies = new HttpCookie(countStr)
{
Expires = DateTime.Today.AddDays(),
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 }
}
}

Mvc4.0添加商品到Cookie的更多相关文章

  1. mvc4.0添加EF4.0时发生编译时错误

    解决此问题是因为MVC4.0默认未添加EF4.0的引用,EF4.0引用的是System.Data.Entity.dll, Version=4.0.0.0, 解决办法: 在web.config文件sys ...

  2. Asp.Net MVC4.0 官方教程 入门指南之四--添加一个模型

    Asp.Net MVC4.0 官方教程 入门指南之四--添加一个模型 在这一节中,你将添加用于管理数据库中电影的类.这些类是ASP.NET MVC应用程序的模型部分. 你将使用.NET Framewo ...

  3. Asp.Net MVC4.0 官方教程 入门指南之三--添加一个视图

    Asp.Net MVC4.0 官方教程 入门指南之三--添加一个视图 在本节中,您需要修改HelloWorldController类,从而使用视图模板文件,干净优雅的封装生成返回到客户端浏览器HTML ...

  4. Asp.Net MVC4.0 官方教程 入门指南之二--添加一个控制器

    Asp.Net MVC4.0 官方教程 入门指南之二--添加一个控制器 MVC概念 MVC的含义是 “模型-视图-控制器”.MVC是一个架构良好并且易于测试和易于维护的开发模式.基于MVC模式的应用程 ...

  5. Spring.Net在Mvc4.0中应用的说明

    案例Demo:http://yunpan.cn/cJ5aZrm7Uybi3 访问密码 414b Spring.Net在Mvc4.0中应用的说明 1.引用dll 2.修改Global文件 (Spring ...

  6. iis7.0上发布mvc4.0网站

    步骤如下: 1.右击需要发布的项目,在弹出的菜单中选择“发布...”选项 2.在“发布web”对话框中进行设置,配置文件名称默认为“配置文件1”可以修改为需要的名字,以便识别,也可以不改.发布方法选择 ...

  7. 一. DotNet MVC4.0+EasyUI Web简单框架-前言

    之所以说它简单,是因为仅仅用了大家最熟悉的三层架构,简单明了 1.先新建一个MVC4.0 Web项目 2.添加EasyUI的引用,放到Script底下 http://files.cnblogs.com ...

  8. 利用CSS预处理技术实现项目换肤功能(less css + asp.net mvc4.0 bundle)

    一.背景 在越来越重视用户体验的今天,换肤功能也慢慢被重视起来.一个web系统用户可以选择一个自己喜欢的系统主题,在用户眼里还是会多少加点分的.我们很开心的是easyui v1.3.4有自带defau ...

  9. MVC4.0网站发布和部署到IIS7.0上的方法

    最近在研究MVC4,使用vs2010,开发的站点在发布和部署到iis7上的过程中遇到了很多问题,现在将解决的过程记录下来,以便日后参考,整个过程主要以截图形式呈现 vs2010的安装和mvc4的安装不 ...

随机推荐

  1. Android应用程序窗口(Activity)实现框架简要介绍和学习计划

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8170307 前面我们学习了SurfaceFli ...

  2. poj 2429 Pollard_rho大数分解

    先对lcm/gcd进行分解,问题转变为从因子中选出一些数相乘,剩下的数也相乘,要求和最小. 这里能够直接搜索,注意一个问题,因为同样因子不能分配给两边(会改变gcd)所以能够将同样因子合并,这种话,搜 ...

  3. 项目总结之SSI (一)

    这是我进公司之后做的第一个新项目,从无到有. 去年夏天和同事在会议室里度过的日子还恍如昨日啊,时光啊,你慢些走... 作为一个外部项目,美工设计了一个Win8风格的界面,看到现在做前台的同学做的一样是 ...

  4. url 的httppost 和http get ,put,delect

    URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源 ,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查 ,改 ,增 ,删 4个操作 .到这里 ...

  5. Oracle闪回详解

      1.问题定义 闪回是dba做的工作.现在也可授权给某个用户. 闪回的定义:就是将用户错误的操作回恢到以前的状态.即使你的事务提交的commit. 如果你删除了一个表.Drop table(DDL) ...

  6. oracle 如何搜索当前用户下所有表里含某个值的字段?(转)

    oracle 如何搜索当前用户下所有表里含某个值的字段? create or replace procedure MY_Pro_SearchKeyWord is  v_sql VARCHAR2(400 ...

  7. Eclipse MyEclipse 复制项目 复制现有项目 复制功能相似项目

    如果现在已经存在一个Java Web项目 ProjectA,现在想做另外一个项目,里面绝大部分功能和结构都可以复用,如果想通过复制的方法来,那么可以这么做: 1.到资源管理器中,将ProjectA文件 ...

  8. juce viewport使用

    1.设置内容组件 void PropertyPanel::init() { messageWhenEmpty = TRANS("(nothing selected)"); addA ...

  9. Bluestacks视窗界面调整及内存调整经验

    本文将分享bluestacks视窗界面调整及内存调整的经验,可以有效解决Bluestacks缓慢.卡的问题! 一.bluestacks视窗界面调整 1.进入注册表: 2.找到下图中的键值: 3.修改键 ...

  10. 无法启动计算机"."上的服务w3svc

    在启动IIS服务的时候出现错误: 无法启动计算机"."上的服务w3svc 解决方法: /* 修复错误 运行命令提示符 fsutil resource setautoreset tr ...