2011-04-10 177 views
3

如果我使用受保護的變量,該變量是否存在於整個Web應用程序中,還是在用戶通過get或post移動到其他頁面時被刪除?我知道除非我使用靜態變量,否則它不能在其他頁面中訪問,但我很好奇它是否存在於整個應用程序中。請告訴我!ASP.NET - 受保護的變量

回答

1
,當你移動到其他頁面和回報,你的頁面類的新實例

將被創建並因此所有非靜態變量將被重置。

的值將是在一個請求流程的生命時間有效的(開始與請求開始,並與請求結束時結束)

使保護的變量,只是意味着該變量是訪問能夠在繼承的類。例如在asp.net您可以在繼承類使用它像您的標記內(因爲它繼承了後面類代碼)

這意思保護變量,如果你想保留保存的頁面之間的值

您可以使用這些物品的一個根據您的要求:

  • 餅乾
  • 查詢字符串
  • 會話狀態
  • APPLICAT離子美國
  • 緩存

和視圖狀態保持在同一個頁面或控制回發之間的狀態變量而它不重定向到另一頁。

+0

感謝您的回覆。非常有幫助。 – SEA 2011-04-10 04:54:00

1

protected關鍵字不決定變量多久存在,也不確定是否會在接下來的文章後面提供。

你可能正在尋找的是國家管理。

看看this webpage,看看如何才能維持後背上,不同頁面之間等狀態

而且看看this page以確定哪些情況下使用其狀態管理功能。

+0

謝謝。我會看看他們。 – SEA 2011-04-10 04:54:24

1

通常,「頁面」變量只能在請求的持續時間內生效。如果您的變量是靜態的,那麼在應用程序域卸載之前,所有請求將只有一個變量實例。

如果變量是私有或保護,任何其他類將有機會獲得它。

然而,你的問題似乎有點奇怪。你關心什麼?

+0

我想知道使用受保護的變量是否會減慢我的Web應用程序。我聽說session變量確實減慢了web應用程序的速度。受保護的變量不在用戶之間共享,是嗎? – SEA 2011-04-10 04:57:02