回答
從技術上講,您可以獲取當前IHttpHandler的請求。由於Page實現,那麼你可以檢查,看看它是否是一個。
var page = HttpContext.Current.CurrentHandler as Page;
if(page != null){
// Do something with page
}
您可以使用HttpContext.CurrentHandler
爲請求返回當前的HttpHandler。 Page類只是一種複雜類型的HttpHandler。
爲了訪問與頁面屬性相關的任何內容,您需要將結果轉換爲Page
。老實說,如果可能的話,我會採用Jeff的方法,因爲通過在方法調用中注入頁面引用,您的方法更加可測試(更不用說可靠了,因爲您可以直接使用Page)。依賴與HttpContext有關的任何事情往往會讓你的代碼無法測試。也許你處於一種無法設計這種方法的情況,但這將是我更喜歡這樣做的方式。
同意,我強烈懷疑httpcontext是一個混亂的線程以及。 – maxp 2010-03-22 20:07:20
最簡單的方法是將當前頁面作爲參數傳遞給您在靜態類中調用的方法。
是的,可能'最乾淨',恥辱它的埋葬約5方法調用深... – maxp 2010-03-22 19:53:29
Yu!那麼HttpContext.Current就是這樣,除非你有機會重構。 – 2010-03-22 19:55:22
- 1. 訪問靜態variablefrom類實例
- 2. 訪問當前實例模型屬性靜態函數
- 3. 從aspx頁面訪問靜態類屬性頁
- 4. 如何從靜態方法訪問類的實例?
- 5. 從錯誤頁面訪問CodeIgniter實例
- 6. 如何訪問當前[網頁]頁面(當前頁面之外)?
- 7. 在c中訪問一個實例類的靜態類型#
- 8. 從aspx頁面訪問靜態類方法
- 9. 訪問非靜態類的靜態類
- 10. 靜態方法不能訪問類的實例成員
- 11. 通過本地靜態實例訪問實例成員
- 12. 想從非靜態類訪問靜態成員的非靜態子類的Java
- 13. 從靜態方法實例化子類
- 14. 從不同類訪問類的實例?
- 15. 從其他頁面訪問頁面類
- 16. 通過$ this->從靜態調用的函數訪問當前類。
- 17. 從C++中的靜態方法訪問非靜態類變量
- 18. 靜態類與類的實例
- 19. 從類對象訪問靜態變量
- 20. 從C++ DLL訪問C#靜態類
- 21. 從Java超類訪問靜態字段
- 22. 從靜態方法訪問類成員
- 23. Python3:從子類訪問靜態函數
- 24. 使用javascript訪問當前頁面的頁面標題[no ajax]
- 25. 實例類 - >靜態類 - > C#中的實例類
- 26. 訪問JavaScript類的靜態屬性而不使用類的實例
- 27. 從MainWindow訪問類的實例
- 28. C#中靜態類訪問
- 29. 靜態類訪問會話
- 30. 如何從(靜態)類中的類創建新的類實例?
相關問題:https://stackoverflow.com/q/58123/1475331。 – 2017-06-10 12:03:46