当前位置 : 主页 > 网络编程 > ASP >

ASP.NET – 如何引用不在app_code中的类

来源:互联网 收集:自由互联 发布时间:2021-06-24
我创建了一个名为MyMasterPage的MasterPage. public partial class MyMasterPage : System.Web.UI.MasterPage{ protected void Page_Load(object sender, EventArgs e) { }} 我还在app_code中创建了一个名为Class1的类: public class
我创建了一个名为MyMasterPage的MasterPage.

public partial class MyMasterPage : System.Web.UI.MasterPage
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
}

我还在app_code中创建了一个名为Class1的类:

public class Class1
{
    public Class1()
    {
      MyMasterPage m;
    }
}

在Class1中我想引用MyMasterPage但是我得到了一个编译器警告:

The type or namespace name 'MyMasterPage' could not be found (are you missing a using directive or an assembly reference?)

为了让它工作,我需要添加什么代码?

这些类在文件夹中,如下所示:

alt text http://www.yart.com.au/stackoverflow/masterclass.png

除非您将其放在App_Code下,否则您将无法引用MyMasterPage.通常在这种情况下,您将创建一个继承自MasterPage的基本母版页.例如

public partial class MasterPageBase : System.Web.UI.MasterPage
{
   // Declare the methods you want to call in Class1 as virtual
   public virtual void DoSomething() { }

}

然后在您的实际母版页中,继承自您的MasterPageBase,而不是继承自System.Web.UI.MasterPage.覆盖继承页面中的虚拟方法.

public partial class MyMasterPage : MasterPageBase

在Class1中你需要引用它(我假设你从Page类的MasterPage属性获得母版页,你的代码看起来像……

public class Class1
{
    public Class1(Page Target)
    {
      MasterPageBase _m = (MasterPageBase)Target.MasterPage;
      // And I can call my overwritten methods
      _m.DoSomething();
    }
}

这是一个漫长的蜿蜒方式,但到目前为止,我能想到的唯一一件事就是ASP.NET模型.

网友评论