关于ViewState

1web请求是没有状态的。web页面在每个request/response周期都是不一样的实例。拿你这个例子来说就是第一次加载页面时你声明了i,这时i默认值为0,之后经历Page_load,i变成5.而后timer触发回发事件。页面第二次加载,这时i并不是第一次时设置的值,它还是0.并且由于是PostBack所以也不会执行Page_load里为i赋值的语句。当执行Timer1_Tick时,i也就是0了。因此页面跳转了。


2.asp.net为我们提供了ViewState来解决web请求无状态的问题。你可以把i存入ViewState:
 .. Page_Load(..)
{
     if( !IsPostBack)
    {
         ViewState["timeout"] = 5;
    }
}


然后在Timer1_Tick
{
    var timeout = int.Parse(ViewState["timeout"].ToString());
    f (itimeout > 0)
     {
            daojishi.InnerHtml = "还有" + i + "秒跳转到主页";
           ViewState["timeout"] =  --timeout ;
      }
      else
       {
            Response.Redirect("JTT.aspx");
       }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值