Iai*_*man 4 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; }
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试从MyPage中的属性引用此属性.
public class MyPage : System.Web.UI.Page
{
...
public string PageID
{
set
{
((MyMaster)Master).PageID = value;
}
get
{
return ((MyMaster)Master).PageID;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我最终得到"无法找到类型或命名空间名称'MyMaster'.我通过在MyMaster页面上使用FindControl()而不是属性来实现它,但母版页中的ID可能会发生变化.
我倾向于使用网站项目执行以下操作:
在App_Code中创建以下内容:
BaseMaster.cs
using System.Web.UI;
public class BaseMaster : MasterPage
{
public string MyString { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
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";
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后我的母版页继承自BaseMaster:
using System;
public partial class Masters_MyMasterPage : BaseMaster
{
protected void Page_Load(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(MyString))
{
// Do something.
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的页面继承自BasePage:
public partial class _Default : BasePage
Run Code Online (Sandbox Code Playgroud)