我正在开发.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; } } }
我最终得到"无法找到类型或命名空间名称'MyMaster'.我通过在MyMaster页面上使用FindControl()而不是属性来实现它,但母版页中的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