当前位置:编程学习 > C#/ASP.NET >>

Response.Cookies和Request.Cookies问题

Response.Cookies["上次访问时间"].Value = System.DateTime.Now.ToString();
string lastTime = Request.Cookies["上次访问时间"].Value.ToString();
 
第一行代码是设置Cookies值,第二行是读取Cookies值

问题,现在我先是设置了Cookies值,再进行读取,为什么我读取的Cookies值还是上次设置Cookies值,而不是在前一行代码里设置的Cookies值?
是不是 Request.Cookies总是读取上次的值?
求解答,谢谢 Response.Cookies Request.Cookies --------------------编程问答-------------------- Cookies要post过才有效,也就是要提交过
刚给完值就取是取不到的。
Request就是获取提交过的值 --------------------编程问答-------------------- 如果是想给完就取,那用session吧
--------------------编程问答-------------------- 不是很懂你的描述,不过你这代码  运行之后的结果应该是上面设置的值 --------------------编程问答-------------------- Response.Cookies["上次访问时间"].Value = System.DateTime.Now.ToString();后 也写入到cookies,好像有个Response.Cookies.Add(cookie) --------------------编程问答--------------------
引用 1 楼 c02645 的回复:
Cookies要post过才有效,也就是要提交过
刚给完值就取是取不到的。
Request就是获取提交过的值
怎么理解为提交过? --------------------编程问答--------------------
引用 3 楼 qy1116 的回复:
不是很懂你的描述,不过你这代码  运行之后的结果应该是上面设置的值
如果你的Cookies第一写出就是上面的值,但是你运行第二次的时候,就不是了,就是前一个值了。 --------------------编程问答--------------------  
 Request.Cookies["上次访问时间"]
是从客户端提交上来的数据取值,
Response.Cookies["上次访问时间"]
不会修改当前客户端的提交,
只会在下一个页面生效。
建议使用session或其它全局变量。 --------------------编程问答--------------------
引用 5 楼 u012769302 的回复:
Quote: 引用 1 楼 c02645 的回复:

Cookies要post过才有效,也就是要提交过
刚给完值就取是取不到的。
Request就是获取提交过的值
怎么理解为提交过?

比如你在页面放一个<input name="txt1" type="text" value="aaa" />
你第一次进入这个页面用Request["txt1"]获取的是null,但你执行了某个button后台事件后,Request["txt1"]的值是aaa
所有的post和get都可以认为是"提交" --------------------编程问答-------------------- 这是两个不同的集合,一个表示从客户端提交上来的,一个表示即将写到客户端的
如果你要读取最新设置的值,可以从Resposer.cookie中取。如果不存在,再从Request.cookie取 --------------------编程问答--------------------
引用 9 楼 WM_JAWIN 的回复:
这是两个不同的集合,一个表示从客户端提交上来的,一个表示即将写到客户端的
如果你要读取最新设置的值,可以从Resposer.cookie中取。如果不存在,再从Request.cookie取

你怎么能判断是不是第一次取啊,只要执行过一次Response.Cookies,就算是Response.Write(Response.Cookies["aaa"].Value);那么aaa的cookies也被清空,那么那个Cookies就清空了,以后就获取不到了。获取只能是Request.cookie获取。
Response.Cookies只能想像为临时一次性变量。 --------------------编程问答-------------------- Request.Cookies[xx]用来获取http请求中客户端浏览器某个cookie的值;
你这两行都是在服务器端执行的,Response.Cookies[xx].value设置的cookie值,还未返回到客户端浏览器生效,因此Request.Cookies[xx]获取的还是上次设置的值。 --------------------编程问答-------------------- 用session吧, --------------------编程问答-------------------- 换session吧
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,