我正在开发 .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/