閱讀686 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Page_Load上麵的代碼使用——ViewState,Session,Static,Linq

 

我們先看網上的一對問答     
private int x;
protected void Page_Load(object sender, EventArgs e)
{
     if (!IsPostBack)
     {
         x = 1;
     }
}

protected void Button1_Click(object sender, EventArgs e)
{
     x++;
     Response.Write(x.ToString());
}
      
這裏每次調用都輸出1,為什麼不是遞增?如果我想定義在當前頁的變量如何定義。
     
這是因為x隻是一個局部變量,在一次的網頁請求,等到網頁執行完畢的時候就會被回收,這時候x就已經不存在了,下次再訪問的時候又會是一個新的x變量。如果需要達到

想要的效果,可以把x聲明為一個靜態變量,就不會被回收了:
private static int x;

 

回答的很對,那麼我們要處理x有什麼其他的辦法?

1 static

2 ViewState

3 Session,Cooike

 

Linq對象使用viewState會報錯,所以我們用linq對象時不用viewstate,用其他替代。

 

最後更新:2017-04-02 06:52:18

  上一篇:go Flurry:2012年美國和中國移動市場最具潛力
  下一篇:go Sql Server中如何取得剛剛插入的自增長的id值