2009-06-01 365 views
0

如何從另一個類訪問頁面類。例如,我有:從其他頁面訪問頁面類

public partial class MyPage : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { } 
} 

爲什麼我不能在App_Code文件夾中另一個類訪問它?

public class MyClass 
{ 
    public MyClass() {} 
    public void DoSomething(object o) 
    { 
     // The following line won't compile. 
     MyPage page = o as MyPage; 
    } 
} 

我只是理解了它(感謝Fujiy),由於某種原因,這是網站項目的情況下,而不是在VS. Web應用程序項目的問題如果有人有任何線索爲什麼,請分享您的想法。謝謝:)

+0

@anna:將它作爲答案發布 - 我認爲你是對的。 – GalacticCowboy 2009-06-01 15:41:03

+0

是的,我也是,我只是把它扔到VS檢查任何非明顯:) – annakata 2009-06-01 15:43:22

回答

4

我發現你的代碼沒有問題,因爲你發佈的代碼很可能是命名空間問題。

編輯:gah,只是注意到,你提到這是一個網站項目。自從我開始啓動其中一種功能以來,已經有一段時間了:)但我相信這是源於App_Code運行時編譯的事實。這需要一個比我更好的人來解釋爲什麼會產生問題,但長話短說,我只是避免一般的網站項目。

+0

代碼發佈的作品,必須是命名空間,或者你在你的實際代碼中有一個錯字。 – Lazarus 2009-06-01 15:46:27

2

你可以做到這一點,據我所知:

System.Web.UI.Page page = System.Web.HttpContext.Current.Handler as System.Web.UI.Page; 

小心你打電話,雖然,因爲很明顯,在你的代碼不同點的頁面將不可用。例如,Global.asax中的Application_Start。