2011-01-31 60 views
1

我有使用會話變量的代碼;它既在後面的主頁面代碼中,也在一些aspx文件的代碼後面。我想把這些代碼放在一個不同文件中的函數中,但是當我這樣做時,語句Session [「VariableName」]在單詞session中以紅色加下劃線。我錯過了什麼?在類中使用會話

謝謝。

回答

6

Session在頁面中是System.Web.UI.Page.Session。由於您的網頁來自Page課程,因此您無需進行任何限定即可參考。

您的課程可能並非來自Page

在你的課堂上,用HttpContext.Current.Session代替。


布賴恩帶來了一個很好的觀點。通常,您的課程代碼可能不會在請求的上下文中調用。總是先檢查:

if (HttpContext.Current != null) 
{ 
    if (HttpContext.Current.Session != null) 
    { 
     object cell = HttpContext.Current.Session["variable"]; 
     if (cell != null) 
     { 
      return (int) cell; // Or whatever 
     } 
    } 
} 
+0

是的,這。首先確保你有一個有效的HttpContext.Current!如果您正在創建類庫,則可能不會在Web應用程序上下文中調用該代碼。 – Bryan 2011-01-31 19:50:08