2009-11-01 48 views

回答

4

該變量僅適用於單個請求,除非將其存儲在會話或緩存中。如果它是公開的,它將可用於請求期間創建的其他對象,但僅限於與請求關聯的那些對象。如果你聲明它是靜態的,那麼它將在應用程序的整個生命週期中可用 - 但這聽起來像你不想要的,所以簡單地避免這樣做。

+0

所以如果它的靜態它會保持不同會話之間的相同值? – 2009-11-01 12:26:05

+1

是的,如果它是靜態的,它將在整個應用程序生命週期中保持相同的值。但是你爲什麼要在頁面上聲明靜態變量? – 2009-11-01 12:28:15

+0

我不想在自己的頁面中,但可能在頁面調用的類中 – 2009-11-01 12:29:21

3

變量作用域與會話之間持有的值沒有任何關係。

公共範圍只意味着該變量可以被應用程序中的任何其他代碼看到。

如果希望對象能夠跨會話存儲,則需要將其存儲在會話中。

3
  1. 每一頁都是WebPage類的一個實例,它在每個請求中被銷燬和重新創建。
  2. 會話包對會話是唯一的,不會在不同的會話中共享。它只存儲你添加到它的東西。

1 + 2 =否。只需向頁面添加公共字段不會將其添加到會話中。會話之間不會保持相同的值。

你能告訴我們你面對的確切問題嗎?

0

在會話之間共享數據的唯一方法是將其存儲在數據庫或應用程序變量中。