Asp.Net中Cookie的用法

love_geng 2010-09-27 03:13:00
//写入Cookie中
protected void btnSendMessage_Click(object sender, EventArgs e)
{
Response.Cookies["UserMessages"]["UserName"] = this.txt_UserName.Text;
Response.Cookies["UserMessages"]["DoctorName"] = this.txt_DoctorName.Text;
Response.Cookies["UserMessages"]["MessageContents"] = this.txt_ConsultMessage.Text;
Response.Cookies["UserMessages"]["MessageDate"] = DateTime.Now.ToString();

//初始化并设置Cookie的名称
HttpCookie cookie = new HttpCookie("UserMessages");
cookie.Values["UserName"] = this.txt_UserName.Text;
cookie.Values["DoctorName"] = this.txt_DoctorName.Text;
cookie.Values["MessageContents"] = this.txt_ConsultMessage.Text;
cookie.Values["MessageDate"] = DateTime.Now.ToString();
Response.AppendCookie(cookie);
}
// Timer事件,读取Cookie中的值
protected void Timer1_Tick(object sender, EventArgs e)
{
if (Request.Cookies["UserMessages"] != null)
{
NameValueCollection MessagesCookieCollection;
MessagesCookieCollection = Request.Cookies["UserMessages"].Values;
this.lbl_ConsultMessage.Text = Server.HtmlEncode(MessagesCookieCollection["MessageContents"]) + "<br />";

}
}
读取的内容会覆盖掉前一条消息,我想实现的是输入的内容都可以显示在lbl_ConsultMessage.Text中。
请各位高手帮帮忙,谢谢!!!!
...全文
223 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
t330wuxy 2010-09-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 qiandongwu 的回复:]
你每一次都重新赋值了,当然最后只取最后一条数据,前面的覆盖了。在每一次赋值前先判断下是否为空,不为空则在赋值的后面加上以前的值即可。
if (Response.Cookies["UserMessages"]["UserName"]!= null){
Response.Cookies["UserMessages"]["UserName"] = this.txt_UserName.Text+R……
[/Quote]
love_geng 2010-09-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 clj2005 的回复:]
楼主想实现什么功能呢,似乎要做在线聊天,用cookies不明智吧。为何不用application

另外,想实现的是输入的内容都可以显示在lbl_ConsultMessage.Text中
那应该用
this.lbl_ConsultMessage.Text += Server.HtmlEncode(MessagesCookieCollection["MessageContents"]) + ……
[/Quote]
我试过了,因为用的是Timer的事件,所以它会重复的显示lbl_ConsultMessage.Text中的内容。
wuyq11 2010-09-27
  • 打赏
  • 举报
回复
用2个浏览器IE和 Firefox打开
如果是在相同的域内,己有的cookie中存在一个名称为"username"的cookie,那么它的值就会被改写,其它不影响.
var expTime = new Date(new Date().setDate(new Date().getDate() + 500));
var edp = ";expires=" + expTime.toGMTString() + ";
document.cookie = document.cookie + ";id="+ edp;
clj2005 2010-09-27
  • 打赏
  • 举报
回复
楼主想实现什么功能呢,似乎要做在线聊天,用cookies不明智吧。为何不用application

另外,想实现的是输入的内容都可以显示在lbl_ConsultMessage.Text中
那应该用
this.lbl_ConsultMessage.Text += Server.HtmlEncode(MessagesCookieCollection["MessageContents"]) + "<br />";
majic2008 2010-09-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 qiandongwu 的回复:]
你每一次都重新赋值了,当然最后只取最后一条数据,前面的覆盖了。在每一次赋值前先判断下是否为空,不为空则在赋值的后面加上以前的值即可。
if (Response.Cookies["UserMessages"]["UserName"]!= null){
Response.Cookies["UserMessages"]["UserName"] = this.txt_UserName.Text+R……
[/Quote]
qiandongwu 2010-09-27
  • 打赏
  • 举报
回复
你每一次都重新赋值了,当然最后只取最后一条数据,前面的覆盖了。在每一次赋值前先判断下是否为空,不为空则在赋值的后面加上以前的值即可。
if (Response.Cookies["UserMessages"]["UserName"]!= null){
Response.Cookies["UserMessages"]["UserName"] = this.txt_UserName.Text+Response.Cookies["UserMessages"]["UserName"];
}else{
Response.Cookies["UserMessages"]["UserName"] = this.txt_UserName.Text;
}
gongsun 2010-09-27
  • 打赏
  • 举报
回复

62,271

社区成员

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

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

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

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