会话对象不更新ASP.NET
|
我在代码的一个时刻设置了一个会话对象: Session("my_name") = "Dave"
稍后在我的代码中,我给用户一个更新此对象的机会: Session("my_name") = TextBox1.Text
我重新加载我的页面并显示一个像这样的小问候: Label1.Text = "Hello" & CStr(Session("my_name"))
结果是:“Hello Dave”无论我改变Session(“my_name”)也是如此. 编辑:这是我写的一个完整的代码隐藏演示: Public Class WebForm1
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object,ByVal e As System.EventArgs) Handles Me.Load
Response.Cache.SetCacheability(HttpCacheability.NoCache)
Response.ExpiresAbsolute = DateTime.Now.AddMonths(-1)
If Page.IsPostBack = False Then
Session("my_name") = "Dave"
End If
Label1.Text = CStr(Session("my_name"))
End Sub
Protected Sub Button1_Click(ByVal sender As Object,ByVal e As EventArgs) Handles Button1.Click
Session("my_name") = TextBox1.Text
End Sub
结束类 解决方法Page的Load事件比Button的click事件更快启动.因此,在运行时,Session(“my_name”)的值仍然是“Dave”.如果您想正确设置它,您应该将Label1.Text = CStr(Session(“my_name”))放入页面的PreRender事件处理程序中. 你也把它放入了Button的Click事件中(当然,在设置了会话值之后),但我想你以后想要使用会话来存储对象,以减少不重要的目的. (我想你以后想要将会话用于更高级的目的.毕竟,如果你只想更改标签的文本,那么使用会话会有什么意义?) 基本上,这就是你想要的: >如果不是回发,则Page_Load将Session(“my_name”)设置为“Dave” 以下是您当前代码所发生的情况: >如果不是回发,则Page_Load将Session(“my_name”)设置为“Dave” 您可以在此处阅读有关该主题的更多信息:ASP.NET Page Life Cycle Overview. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 使用html.actionlink将模型从视图传递到控制
- asp.net-mvc – Asp.net MVC查看测试?
- 在ASP.NET中实现多文件上传的方法
- asp.net-mvc – 具有多个路由值的Url.Action帮助器的问题
- ASP.NET MVC AJAX Sys是未定义的错误
- asp.net-mvc – 获取索引值razor foreach
- asp.net-mvc – 路由到具有相同名称但不同参数的操作
- 将额外的信息与ASP.NET MVC成员关联
- asp.net – 使用jquery调用ascx页面方法
- dependency-injection – 如何使用unity注入ApplicationUse
- ASP.NET元:resourcekey
- asp.net-mvc-4 – htmlHelper与局部视图
- 在ASP.NET中单点登录 – cookie名称,machineKey还
- asp.net – 关键字不支持:’元数据’.使用MVC3的
- 在asp.net中将产品信息存储在购物车中的理想方式
- asp.net – 联合身份验证和“加密操作期间发生错
- asp.net-mvc – 如何在ASP.NET MVC Web API中将U
- asp.net-mvc – 适用于大型网站的ASP.NET MVC项目
- asp.net – 如何防止重复的回发混淆我的业务层
- asp.net-mvc – 通过Web Api接收,发送文件
