繁体   English   中英

我的ViewState有问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM