Response与Request的Cookies

realghost 2006-04-27 04:48:58
做完了《ASP.NET 入门经典》11.5节在页面上使用多种状态管理技术的例子,点Apply按钮可以改变样式,但是页面首次载入时就是不能加载css,察看输出的html,发现<link id="css" href=' ' type="text/css" rel="stylesheet" />这里的href为空。

因为点Apply按钮可以改变样式,问题应该出在Page_Load()里。

仔细检查源码,发现少写了当Cookies不存在时,将Session["SelectedCss"]赋值的代码,加上以下代码:

else {

Session["SelectedCss"] = Request.Cookies["PerferredCss"].Value;

}

加上了以上代码,仍然不行,加入输出信息的代码,就像下面的这一类代码:
Response.Write("<br />Session[\"SelectedCss\"] == null");

发现总是提示Cookies["PerferredCss"]已经存在,删除Cookies文件,仍然提示Cookies存在,这样逻辑就有问题了:Cookies存在,Session["SelectedCss"]就为Cookies里的值,如果不存在,就用默认的"WroxUnited.css";现在Cookies存在,但是值为空,所以Session["SelectedCss"]的值为空。

这就奇怪了,明明Cookies不存在,但是就是提示存在呢?仔细对比从网上下的源码,终于发现,在判断语句里是这样写的:

if(Response.Cookies["PerferredCss"] == null)

这里的Cookies是Response对象的,而不是Request对象的,将Response改为Request,就正常了。

Response对象与Request对象的具体意义还是没有理解清楚。

Response.Cookies是什么?在提交Cookies时用这个。

Request.Cookies在引用时使用。

难道就这一点区别?
...全文
385 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxfaich 2006-04-28
  • 打赏
  • 举报
回复
Response对象和Request对象有一个共同的属性Cookies,他是存放Cookies对象的集合,使用Response对象的Cookies属性设置Cookies信息,使用Request对象的Cookies属性读取Cookies信息.
zxfaich 2006-04-28
  • 打赏
  • 举报
回复
其实Cookies是由Response来实现的,Cookies是一种进行状态管理的方法,他根本的用途是帮助Web应用程序保存有关访问者的信息.
realghost 2006-04-27
  • 打赏
  • 举报
回复
为什么Response.Cookies总是存在呢?
Response.Cookies有没有意义?
睡觉之前顶一下~~~
realghost 2006-04-27
  • 打赏
  • 举报
回复
为什么Response.Cookies总是存在呢?
loveme4180 2006-04-27
  • 打赏
  • 举报
回复
Request是客户发给服务器的请求
Response是服务器发给客户端的回应
正解
nugu 2006-04-27
  • 打赏
  • 举报
回复
Request是客户发给服务器的请求
Response是服务器发给客户端的回应
time_is_life 2006-04-27
  • 打赏
  • 举报
回复
写入Response
读取Request
自由人2008 2006-04-27
  • 打赏
  • 举报
回复
一个是发送,一个是获取啊。

62,053

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧