1. 程式人生 > >ASP.NET頁面重新整理與全域性變數

ASP.NET頁面重新整理與全域性變數

點選button中,就會發生頁面的重新整理,我之前定義的全域性變數中的數值就會消失,從而報錯,解決這個問題的方是:在頁面中定義幾個hidden型別的文字控制元件來存放相應的全域性變數值,如<input type="hidden" value="全域性變數的對應數值" id="全域性變數名">這樣將在後臺中通過hid1.value方法來獲取和對該隱藏域進行賦值,從而保證引數不變。每一次新的請求,伺服器都會重新構建介面,所以全域性變數會被初始化是肯定的,因為你點選button實際上是向伺服器傳送了一個請求,由於asp.net的回發機制,在asp.net接到請求後,會重新載入介面包含重新分配變數的值,重新構建控制元件物件,
其中要控制元件的資訊時根據你提交的表單資料在構建的,其中包括一些隱藏域資訊,然後再把最新的資訊傳送到客戶端,也就是說在html頁面呈現給客戶端之前,頁面物件被銷燬而且所有的客戶端資訊被丟棄。所以在下一次請求的時候又要重新構建。

這種情況,通常使用以下幾種方式定義全域性變數:

(1)靜態變數。不過這種情況,得注意併發

public static int i;

(2)用asp.net的Session快取物件

Session["name"]="Name";
(3)使用viewstate