2009-09-10 32 views

回答

5

你需要什麼?

  • 一個變量,它是活着的那一刻起ASPX頁面被創建並開始其生命週期,並且將與頁面實例一旦HTML渲染返回給客戶端進行配置?

  • 或一個變量,將「生存」回發,並被髮送回客戶端與HTML並回到服務器下一次請求頁面?

對於選項#1,你很好,應該在你的頁面類中使用普通變量 - 不需要ViewState。

如果您需要選項#2 - 變量值需要跨回發保存並返回下一個請求 - 那麼只有ViewState作爲選項 - 將其存儲在頁面類中的局部變量中不會。

Marc

+0

從我可以理解。在一個WebControl的或在頁面中使用的變量沒有什麼區別?對? – MRB 2009-09-10 06:36:17

+0

這是一樣的,是的 - 無論變量是存在於頁面類本身,還是在Web控件中都基本相同 – 2009-09-10 06:57:47

2

顯然局部變量是一個更好的選擇。它們只在方法運行時才存在,並且它們在堆棧上創建,所以它們非常便宜。

將ViewState序列化併發送到瀏覽器中的響應中的隱藏字段,並以請求中的表單數據的形式返回到服務器。如果你不需要堅持價值,那完全沒有必要。

(如果你需要堅持的價值,ViewState的是兩者的唯一選擇。局部變量當然不是從一個請求保留到下一次。)如果你需要堅持變量

0

另一種選擇是讓包含頁面爲你做。在用戶控件上創建一個事件,當您的變量需要填充時觸發,然後您的頁面處理該事件。 你可以通過這種方式獲得兩全其美。

0

局部變量:是堅持一個ASPX頁面

View state的生命週期:使用ASP.NET網頁堅持更改在回發一個Web窗體的狀態的技術。

因此根據您的要求選擇視圖狀態和局部變量。

相關問題