加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 09:30:03 所属栏目:asp.Net 来源:网络整理
导读:我创建了一个名为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的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模型.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读