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