2010-04-09 63 views
1

我正在開發一個asp.net(使用C#編寫)的小應用程序。 在我的應用程序中,我使用jquery對服務器執行異步調用。 我有一個HTTP處理程序,用於監聽請求並執行其需要執行的操作。訪問來自httphandler的母版頁

問題在處理程序中開始,我需要訪問存儲在頁面中的信息,從異步調用開始的位置。當我嘗試這個:

Page page = HttpContext.Current.Handler as Page; 

我沒有得到一個頁面。

我還能如何訪問頁面本身?

謝謝

+0

有什麼理由,你不能發需要的數據作爲異步調用的參數?您似乎有權訪問調用頁面上的信息。 – PHeiberg 2010-04-09 07:11:26

+0

好吧,我的母版頁包含一些非常複雜的數據類型。我被迫將這些數據類型從我正在使用的另一個設計的母版頁中公開。 我可以將數據類型保存到會話中,但每過一段時間,我都需要通過再次從我的母版頁請求它們來刷新正在處理的對象。 這些信息是每個用戶的,所以我無法通過從母版頁公開靜態方法來解決它。 – vondip 2010-04-09 07:25:38

+0

我認爲你必須添加一些更多的細節,以便我們瞭解你的具體需求,但總的來說,我同意@Bryan,因爲你有一個設計問題。您不應該嘗試從HttpHandler訪問母版頁。 – PHeiberg 2010-04-09 07:55:46

回答

-1

您可以創建新的頁面實例。

SomePage page = new SomePage(); 
+1

你在這裏吠叫錯誤的樹。這可能會給你一個Page類,但它與處理的請求無關。 – Bryan 2010-04-09 06:50:52

+0

絕對贊同你布萊恩。但它回答了這個問題。 – iburlakov 2010-04-09 07:06:10

3

您有輕微的設計問題。 Page類是一個HttpHandler。它實際上是默認處理請求的HttpHandler。當你定義你自己的HttpHandler時,沒有Page類......因此也沒有Master。

如果您需要從不同的頁面訪問信息,你需要做的是通過正常的ASP.NET機制...會話,緩存等