加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 我的ViewState有问题

发布时间:2020-12-15 23:59:24 所属栏目:百科 来源:网络整理
导读:我像这样使用viewstate: public bool SearchClicked { get { return Session["bool"]==null? false : (bool)Session["Bool"]; } set { Session["bool"] = value; } } 在按下按钮的代码中,触发了事件. 我设定了它: SearchClicked=true; 每回发一次,我都会检
我像这样使用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; }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读