c# - 如何从 App_Code 引用 ASP.net MasterPage

标签 c# asp.net master-pages

我正在开发 .net 3.5 站点,标准网站项目。

我在站点 App_Code 文件夹 (MyPage) 中编写了一个自定义页面类。

我还有一个带有属性的母版页。

public partial class MyMaster : System.Web.UI.MasterPage
{
...
    private string pageID = "";

    public string PageID
    {
        get { return pageID; }
        set { pageID = value; }
    }
}

我正在尝试从 MyPage 中的属性引用此属性。

public class MyPage : System.Web.UI.Page
{
...
        public string PageID
        {
            set
            {
                ((MyMaster)Master).PageID = value;
            }
            get
            {
                return ((MyMaster)Master).PageID;
            }
        }
}

我最终得到“无法找到类型或 namespace 名称‘MyMaster’。我通过使用 FindControl() 而不是 MyMaster 页面上的属性让它工作,但母版页面中的 ID 可能会改变。

最佳答案

我倾向于对网站项目执行以下操作:

在 App_Code 中创建以下内容:

BaseMaster.cs

using System.Web.UI;

public class BaseMaster : MasterPage
{
    public string MyString { get; set; }
}

BasePage.cs:

using System;
using System.Web.UI;

public class BasePage : Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (null != Master && Master is BaseMaster)
        {
            ((BaseMaster)Master).MyString = "Some value";
        }
    }
}

然后我的母版页继承自 BaseMaster:

using System;

public partial class Masters_MyMasterPage : BaseMaster
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!string.IsNullOrEmpty(MyString))
        {
            // Do something.
        }
    }
}

我的页面继承自 BasePage:

public partial class _Default : BasePage

关于c# - 如何从 App_Code 引用 ASP.net MasterPage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/495245/

相关文章:

javascript - 尝试连接到 SignalR 时出现错误 204

c# - 使用第三方对象实例化测试代码

c# 匹配 img src ="*"类型 URLs 的正则表达式

c# - 发送 HTTP header 后服务器无法修改 cookie,如何修复?

asp.net - 用于实时监控 ASP.NET Web 应用程序的工具和方法?

asp.net - 使用母版页在 ASP.NET 中通过 @ Page 指令设置页面标题

c# - 如何使用 Open Text Summarizer API?

c# - 在 WebAPI 客户端中每次调用创建一个新的 HttpClient 的开销是多少?

sharepoint-2010 - Sharepoint 2010 Designer 缺少站点对象中的母版页

c# - 在母版页中查找 ContentPlaceHolders