2009-10-04 34 views
2

我遇到了關於在asp.net中的會話這個問題。我正在創建一個ASP.Net Web應用程序。我創建了一個名爲BasePage的類,它繼承自System.Web.Ui.Page。此BasePage類是一個System.Web.Ui.Page,其中包含一個名爲ActiveUser的ActiveUser(我自己創建的一個類)的附加成員。在BasePage的構造函數中,我將成員UI設置爲this.ui = (ActiveUser)Session["ActiveUser"],它是之前設置的會話變量。但是,當我運行我的項目時,我在BasePage的構造函數this.ui = Session["ActiveUser"]中獲得HttpException。它告訴我檢查配置文件中的enableSessionState設置爲true,我已經檢查過它。有沒有人有任何關於如何解決這個問題的idéas?非常感謝。 Thanx!如何從ASP.Net中的Base類訪問會話變量?

回答

6

只是好奇你爲什麼要保存在基頁的構造函數?

您應該不是從構造函數訪問會話,而是從Page_Init訪問會話。請參閱以下職位:

http://weblogs.asp.net/anasghanem/archive/2008/05/07/avoid-using-the-session-in-the-page-constructor.aspx

會話變量將訪問在任何時候實現頁面功能時,爲什麼不能創建一個靜態類/方法與功能抓住你所有的會話數據?我不明白你爲什麼要在你的基類中複製這些數據的存儲。

你可能想看看這個線程: ASP.Net Session

+1

謝謝是一個很大的意見。我在weblogs.asp.net上查看了所提供的guire,它的工作方式非常神奇! – 2009-10-04 14:57:01