我有个页面,想把变量的值储存起来用,放在页面级变量中,每次回送就会清空这些变量值,比如:
public partial class review_ShopList : System.Web.UI.Page
{
    int mode;    protected void Page_Init(object sender, EventArgs e)
    {
        mode = 2;
    }
}
这个可以理解,但是当我使用异步回送的时候,为什么也会让mode回复到0值呢?这样的话,我想到的是使用一个hiddenField来记录这个值,
请问能解释为什么异步回送还是会让mode的值变成0吗? 另外再请教,除了hidden外,还有更好的储存数据的方法吗?这个数据并不重要,任何人知道了都无所谓,所以不需要加密或者什么的。

解决方案 »

  1.   

    public partial class review_ShopList : System.Web.UI.Page 

        int mode
        {
          get{return (int)ViewState["mode"];}
          set{ViewState["mode"]=value;}
       }     protected void Page_Init(object sender, EventArgs e) 
        { 
            mode = 2; 
        } 

      

  2.   

    用viewstate来保持你想要的东西
      

  3.   

    ASP.Net没有状态保存,所以需要使用到一些状态保存的技术,建议楼主先看看ASP.NET的教材。
    示例代码:public partial class review_ShopList : System.Web.UI.Page 

        int mode;     protected void Page_Init(object sender, EventArgs e) 
        { 
            mode = 2;
             ViewState["md"]= mode;
        } 
    } protected string GetMode() //获取mode的值
    {
        string mode = string.Empty;
        if(ViewState["md"] != null )
        {
            mode = ViewState["md"].ToString();
        }
        return mode;
    }
      

  4.   

    在页面后台最好不要用全局变量,因为asp.net回发机制造成的值很容易丢失,我不知道你做的是什么功能,但是要用的话放在session里,也可以放到HiddenField隐藏域控件中
      

  5.   

    页面内用ViewState
    页面间可用Session,RequeryString