[英]I have a problem with ViewState
我像这样使用viewstate:
public bool SearchClicked
{
get { return Session["bool"]==null? false : (bool)Session["Bool"]; }
set { Session["bool"] = value; }
}
在按下按钮的代码中,触发了事件。
我设定了它:
SearchClicked=true;
每回发一次,我都会检查它是否属实:
if (SearchClicked)
{
}
当我启动网站并且有回发时,该值设置为“true”。
确实,我在运行应用程序之前按下了将其设置为true的按钮几次。 但每次运行应用程序时,应用程序实例都是新的。 这是不是意味着每次运行应用程序时ViewState都会自行重置,并且不像Session(20分钟)那样保存其状态?
在上面的代码中,您没有使用ViewState来存储SearchClicked值,而是使用Session来存储它。 ViewState以隐藏值的形式保留在页面上,并返回到服务器。 这意味着视图状态存储在浏览器中,只要用户在页面上,它就会持续存在。 会话信息存储在服务器上。 用户会话最终会超时,但其他事情可能会导致会话重置,例如重建应用程序或编辑web.config文件。
要存储到ViewState,请使用以下命令
public bool SearchClicked
{
get { return ViewState["bool"] == null ? false : (bool)ViewState["bool"]; }
set { ViewState["bool"] = value; }
}
视图状态在回发时处理页面的“状态”,或多或少。 它与应用程序没什么关系; 它的目的很简单。
我在.NET学习的早期发现这篇文章非常有用: 了解ASP.NET视图状态 (特别是“视图状态的角色”部分)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.