Mvc里删除Cooki

/// <summary>

/// 删除Cookie

/// </summary>

/// <param name="skuID">从购物车选择要删除的商品ID</param>

/// <returns>先从Cookie里提取出所有的商品并放进一个字典 Dictionary<int, int> dit = new Dictionary<int, int>();里</returns>

/// 从字典里删除传过来的商品,再重新拼接字符串放到Cookie里,

/// 并把从Cookie拼接好的字符串返回到一个声明的集合(List<ShoppingGoods>)里

public static List<ShoppingGoods> DeletCookie(int skuID)

{

if (skuID != 0)

{

//先从Cookie里提取出所有的商品并放进一个字典(Dictionary<int, int>)里

HttpCookie cookie = HttpContext.Current.Request.Cookies["MyShoppingCart"];//声明Cookie容器

if (cookie != null)//如果Cookie里面有值

{

Dictionary<int, int> dit = new Dictionary<int, int>();//声明字典

string goodsID = cookie.Value;//解析Cookie值并赋值给变量GoodsID

goodsID = goodsID.Substring(0, goodsID.Length - 1);//检索GoodsID字符串的长度

string[] gdsArray = goodsID.Split(‘,‘);//检索GoodsID字符串的长度后拆解

int Count = 0;//声明Int数量

foreach (var v in gdsArray)//迭代拆解出来的字符串数组

{

if (v == "" || v == null)//判断字符串Value == null || == “”

{

continue;

}

else//如果不为Null或“”

{

string[] strValue = v.Split(‘-‘);//拆解字符串

string key = strValue[0];//给拆解后的字符串strValue[0]赋值给 string 变量 Key

int strKey = 0;//声明int变量

bool parseOKstrKey = int.TryParse(key, out strKey);//转换 string 变量 key字符串为 Int key

string value = strValue[1];//给字符串的strValue[1]赋值给 string 变量 value

int strCount = 0;//声明int变量

bool parseOKstrCount = int.TryParse(value, out strCount);//转换string value字符串为 Int value

if (dit.ContainsKey(strKey))//判断字典

{

dit[strKey] += strCount;

Count = gdsArray.Count();//数量统计

}

else

{

dit.Add(strKey, strCount);

Count = gdsArray.Count() + 1;

}

}

}

#region 从字典里删除传过来的商品,再重新拼接字符串放到Cookie里

if (dit.ContainsKey(skuID))

{

dit.Remove(skuID);//删除商品

string strCookie = null;//声明拼接剩下的字符串名

ShoppingMallContext db = new ShoppingMallContext();//数据上下文

List<ShoppingGoods> lsg = new List<ShoppingGoods>();//New一个 ShoppingGoods 的集合

foreach (var vdit in dit)//迭代字典里剩余的字符串

{

strCookie += vdit.Key + "-" + vdit.Value + ",";//给字符串strCookie赋值

ShoppingGoods sg = new ShoppingGoods();//New类

sg.GoodsName = db.GoodsSKUs// 很据传过来的vdit.Key查商品名(GoodsName)

.Where(f => f.GoodsID == skuID)

.Select(f => f.Goods.GoodsName)

.ToString();

sg.Goodssku = db.GoodsSKUs //根据传过来的vdit.Key查Goodssku

.Where(f => f.GoodsID == skuID)

.Single();

sg.Count = strCookie[1];//根据传过来的vdit.Value给ShoppingGoods 属性Count 赋值

lsg.Add(sg);

}

//并把从Cookie拼接好的字符串返回到一个声明的List<ShoppingGoods>里

var cookies = new HttpCookie(strCookie);

cookies.Expires = DateTime.Today.AddDays(1);//设置Cookie的过期时间

cookies.Value = strCookie;//Cookie的值

HttpContext.Current.Request.Cookies.Add(cookies);//添加到Cookie

return lsg;

}

else

{

return null;

}

#endregion//从字典里删除传过来的商品,再重新拼接字符串放到Cookie里

}

else

{

return null;

}

}

else

{

return TiQuCookies();

}

}

时间: 2024-08-27 21:15:45

Mvc里删除Cooki的相关文章

Spring.Net在ASP.NET Mvc里使用的一个小例子

就贴个小例子,就不注意格式了. 1.下载dll NuGet的下载地址:http://docs.nuget.org/docs/start-here/installing-nuget 在vs的NuGet里搜索spring.web.mvc,它会自动下载SpringNet的引用包. 安装完成之后你的项目会多三个引用,项目目录../packages文件夹下面也会多出这三个文件夹里面是SpringNet的文件. 2.写代码例子 很简单的例子.定义一个接口,一个对于接口的实现类. namespace MvcA

我没发现Mvc里的 web.config 有什么用。

实验过程 由于 Mvc2+ 引入 Area ,导致文件夹结构发生变化. Mvc下的 web.config 所在的位置是: ~/Areas/MySystem/Views/Web.config 对应的请求的URL是: ~/MySystem/Home/Index 这时, 在根目录下添加 AppSetting 项: <add key="AdminUserId" value="LhlcAdministator"/> 在 ~/Areas/MySystem/Views

如何在O(1)的时间里删除单链表的结点

题目是这样的:给你一个单链表的表头,再给你其中某个结点的指针,要你删除这个结点,条件是你的程序必须在O(1)的时间内完成删除. 由于有的同学对链表还不是很熟悉,本文尽量描述的通俗易懂,老鸟请直接跳过前面一大段. 链表结构如下: [cpp] view plaincopyprint? struct node { int val; node* next; }; 题目不是很难,很快就能想到好办法:) 首先回顾一下普通的删除方法,首先通过表头,找到待删除结点(设为B)的前一个结点(设为A),将A的指向改一

[算法浅析] 如何在O(1)的时间里删除单链表的结点

题目是这样的:给你一个单链表的表头,再给你其中某个结点的指针,要你删除这个结点,条件是你的程序必须在O(1)的时间内完成删除. 由于有的同学对链表还不是很熟悉,本文尽量描述的通俗易懂,老鸟请直接跳过前面一大段. 链表结构如下: struct node { int val; node* next; }; 题目不是很难,很快就能想到好办法:) 首先回顾一下普通的删除方法,首先通过表头,找到待删除结点(设为B)的前一个结点(设为A),将A的指向改一下就行,然后删除掉B结点就行了.要删除的结点一定要de

MVC实现删除数据库记录

本次MVC练习,我们想实现对数据库的记录进行删除.在网页的记录列表上,点击删除,将带到另外一个详细页面,显示详细的信息,让用户对删除的信息进行确认,再点击删除动作.不管怎样,得先在数据库创建一个删除的存储过程: 实践还是从前几天一系列的练习http://www.cnblogs.com/insus/category/521762.html的基础上进行. 在Solution explorer内的Models目录下,找到FruitCategoryEntity.cs类,添加一个Delete()方法,此方

在openstack宿主机里删除一个虚拟机关联的网卡、端口及桥

在宿主机里删除一个虚拟机关联的网卡.端口及桥 1).用ovs-vsctl命令查看宿主机的所有的桥信息 [[email protected] ~]#ovs-vsctl show 169dc0d6-0c44-42df-9bd5-5e1f380a8704 Bridge br-int Port int-br-int Interface int-br-int Port phy-br-int Interface phy-br-int Port "em2" Interface "em2&q

MVC里使用JSON方法集锦

//一般处理,无参数示例 public JsonResult Test() { Something... return Json{new{Success=true,Msg="Error!",...}}; //return Json(new{Success=fals,Msg="ok",...},JsonRequestBehavior.AllowGet); //前台AJAX如果是GET用这句 } //有参数示例 public JsonResult Test(string

记住 MVC里用formcollection接收form表单传来的值,表单属性必须有name为健!

记住 MVC里用formcollection接收form表单传来的值,input属性必须有name为健! 调了一晚上!! 写个日志记下!!

MVC里的部分视图PartialView

MVC里的部分视图PartialView,相当于用户控件, 用法和普通视图一样,代码如下: public ActionResult Top() { return PartialView(); } 但是在主页面里引用时,分两种: 1.只访问页面,不执行控制器的方法 @Html.Partial("Top") 2.先执行控制器方法,再执行页面 public ActionResult Left() { NewsBLL bll = new NewsBLL(); List<NewsModel