如何从其他类访问页面类。例如,我有:
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 :(得分: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。