从另一个页面类访问页面类

时间:2009-06-01 15:35:27

标签: c# asp.net

如何从其他类访问页面类。例如,我有:

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应用程序项目不是问题。如果有人有任何线索,请分享您的想法。谢谢:))

2 个答案:

答案 0 :(得分:4)

我认为您发布的代码没有任何问题,很可能您遇到了名称空间问题。

编辑:gah,刚才注意到你提到这是一个网站项目。这已经有一段时间了,因为我已经设法启动其中一个:)但我相信这源于App_Code是运行时编译的事实。解释为什么会产生问题需要一个比我更好的人,但长话短说我只是避免网站项目。

答案 1 :(得分:2)

你可以这样做,afaik:

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

请注意,尽管如此,因为显然在代码中的不同位置,页面将无法使用。例如,global.asax中的Application_Start。