跨页面传值2之cookie多值使用
单值cookie结构
CookieKeyName——CookieValue
CookieKeyName2——CookieValue2
...............
通过CookieKeyName进行设置和调用(主键名称)
类似于字符串变量
多值Cookie 结构
【主键(Key)名称】
【子健(key)名称】:【子健值】
【子健(key)名称2】:【子健值2】
【子健(key)名称3】:【子健值3】
【主键(key)名称2】
【子健(key)名称】:【子健值】
【子健(key)名称2】:【子健值2】
【子健(key)名称3】:【子健值3】
注意:最终我们需要调用子健值,需要挖2层才能看到子健值。更像一个字符串数组
Cookie操作需要掌握
单值Cookie 多值Cookie
添加(修改) 主键操作
删除 -添加
-删除
子健操作
-添加
-删除
-修改
多值Cookie的添加
HttpCookie ck =new HttpCookie(“mulitCookie”) 主键“mulit”
ck.value.add("name","小王"); 子健“name”
ck.value.add("age","18");
ck.value.add("sex","男");
ck.Expires=DateTime.MaxValue;
Response.Cookie.add(ck);
多值Cookie主键删除
方法与清楚单值的Cookie完全相同
ck.Expires=DateTime.Minvalue;
Response.Cookie["keyname"].Expires=datetime.minvalue;
另一种非标准的写法:
ck=response.cookie["keyname"];
会在会话期间,保留一个没有Value的空key
子健修改
对子健的调用:Cookie.Value对象集合添加一个子项:ck.value.add("...","...")
修改子健的值:ck.value.set("keyname","newkeyname");
注意:子健值的修改,不能象单值Cookie用add,而必须用set。
实例:
protected void btnx_Click(object sender, EventArgs e)
{
//声明Cookie并创建
HttpCookie ck = new HttpCookie("cookie");
//设置子健值
ck.Values.Add("name","张三");
ck.Values.Add("sex","男");
ck.Values.Add("age","");
//设置过期时间:永不过期
ck.Expires = DateTime.MaxValue;
//写入客户端
Response.Cookies.Add(ck); }
//跳转接受页面
protected void btnlogin_Click(object sender, EventArgs e)
{
Response.Redirect("CookieInfo.aspx");
}
//删除Cookie
protected void btndelect_Click(object sender, EventArgs e)
{
//删除整个Cookie
Response.Cookies["cookie"].Expires = DateTime.MinValue; }
//修改子健
protected void btnupdate_Click(object sender, EventArgs e)
{
string upname = txtname.Text;
if (upname!="")
{
HttpCookie ck = Request.Cookies["cookie"];
ck.Values.Add("name", upname);
ck.Expires = DateTime.MaxValue;
//写入客户端
Response.Cookies.Add(ck);
}
}
接收
protected void Page_Load(object sender, EventArgs e)
{
if (Response.Cookies["cookie"]!=null)
{
//这样写语句太长,台繁琐
//lab.Text += Request.Cookies["cookie"].Values["name"] + ",";
//lab.Text += Request.Cookies["cookie"].Values["sex"] + ",";
//lab.Text += Request.Cookies["cookie"].Values["age"] + "岁"; //这样写一幕了然,Response 是响应页的对象 Request是请求页的对象
HttpCookie _ck;
_ck = Request.Cookies["cookie"];
lab.Text = _ck.Values["name"] + "," + _ck.Values["sex"] + "," + _ck.Values["age"] + "岁"; }
跨页面传值2之cookie多值使用的更多相关文章
- 【2017-05-21】WebForm跨页面传值取值、C#服务端跳转页面、 Button的OnClientClick属性、Js中getAttribute和超链接点击弹出警示框。
一.跨页面传值和取值: 1.QueryString - url传值,地址传值 优缺点:不占用服务器内存:保密性差,传递长度有限. 通过跳转页面路径进行传值,方式: href="地址?key= ...
- WebForm跨页面传值取值、C#服务端跳转页面、 Button的OnClientClick属性和超链接点击弹出警示框
一.跨页面传值和取值: 1.QueryString - url传值,地址传值 优缺点:不占用服务器内存:保密性差,传递长度有限. 通过跳转页面路径进行传值方式: href="地址?key=v ...
- 【页面传值6种方式】- 【JSP 页面传值方法总结:4种】 - 【跨页面传值的几种简单方式3种】
阅读目录 1. URL 链接后追加参数 2. Form 3. 设置 Cookie 4. 设置 Session JSP 页面间传递参数是项目中经常需要的,这应该算是 web 基本功吧. 试着将各种方式总 ...
- angularJs 跨控制器与跨页面传值
虽然网上概括了四种或更多的传值方式,但我现在用的顺手的就两种 首先要知道AngularJs可以构建一个单页面应用程序,所以我划分为跨控制器传值 和 跨页面传值 两类 1.跨控制器传值—— $rootS ...
- 跨页面传值之QueryString
跨页面传值常用方法 1.QueryString 2.Form-post控件传递 3.Cookies传递 4.Application传递 5.Session传递(灵活强大) 1.query传值 http ...
- mui框架开发aop的跨页面传值
mui开发跨平台app,其实不乏会涉及到跨页面传值,今天给大家简单介绍一种常用也是简单的传值方法 咱在这里设置一个场景,就是两个页面进入到同一页面展示不同的元素,此时需要在这两个页面各自设置一个区别的 ...
- Web内置对象 跨页面传值
内置对象: 1.QueryString - 地址栏数据拼接 get传值方式 格式:?key=value优点:简单好用,速度快,不消耗服务器内存. 缺点:只能传字符串,保密性不好,长度有限 Reques ...
- asp.net 跨页面传值常用方法
常用方法有以下: 1.queryString 2.form-post控件传递 3.cookie 4.application 5.session querystring: http://website. ...
- ASP.NET跨页面传值技巧[总结]
个人网站:http://www.51pansou.com .net视频下载:.net视频教程 .net源码下载:.net源码 关于页面传值的方法,我就我个人观点做了些总结,希望对大家有所帮助. 1. ...
随机推荐
- React基础篇 (1)-- render&components
render 基础用法 //1.创建虚拟DOM元素对象 var vDom=<h1>hello wold!</h1> //2.渲染 ReactDOM.render(vDom,do ...
- MVC,MVP 和 MVVM 的区别之处
其实我一直以来,虽然做的是前端的工作,但是有一个疑问,就是什么是mvc模式,虽然大概知道,但是具体确实说不上来的的,今天,我就好好总结一下mvc ,mvp,mvvm模式的区别与相同. 1.MVC模式: ...
- 洛谷P4013 数字梯形问题(费用流)
传送门 两个感受:码量感人……大佬nb…… 规则一:$m$条路径都不相交,那么每一个点只能经过一次,那么考虑拆点,把每一个点拆成$A_{i,j}$和$B_{i,j}$,然后两点之间连一条容量$1$,费 ...
- C++中 栈和队列的使用方法
C++中 栈和队列已经被封装好,我们使用时只需要按照如下步骤调用即可. 1.包含相关的头文件 包含栈头文件: #include<stack> 包含队列头文件: #include<qu ...
- [转]Why you shouldn't use set (and what you should use instead)
Why you shouldn't use set (and what you should use instead) --- stl::set和sorted ector对比Matt Austern ...
- Mac的Parallels在启动Win的时候让它独立全屏窗口
这里备忘一下,由于经常需要***,Win方法比较多少,所以使用Parallels在Win下***还是很有必要的,为了使用使用方便,一般让Parallels启动系统之后自动生成一个独立的全窗口,方便来回 ...
- python 连接数据库 pymysql模块的使用
一 Python3连接MySQL 本文介绍Python3连接MySQL的第三方库--PyMySQL的基本使用. 1 PyMySQL介绍 PyMySQL 是在 Python3.x 版本中用于连接 MyS ...
- pyc和pycodeobject
Python是一个先编译再解释的语言. 执行过程:先寻找pyc文件,找到则载入,没找到则把编译的结果保存在pycodeobject中,运行结束则写到pyc文件中
- HDU_3038 How Many Answers Are Wrong 【带权并查集】
一.题面 HDU3038 二.分析 用并查集可以方便的判断两个位置是否有关系,这种关系可以通过是否有公共父节点判断,如果有公共父节点则可以直接判断是否正确,如果没有公共父节点,就可以把这个条件与之前的 ...
- ansys14.0 从入门到精通
凌桂龙 李战分 2013.2 清华大学 FLUENT流体计算应用教程 索书号:TB126-39 ZW2.1 单元 结点 和 自由度 载荷 与 边界条件 : 关系 就是约束 , 边界条件是 结构 ...