在 C# .Net 3.5 中访问母版页 class
Access Master Page class in C# .Net 3.5
所以...我必须让某人的旧 (2010) .Net 3.5 C# 代码正常工作...当然,开发人员不再有项目文件,只有源代码...
长话短说,代码正在尝试访问母版页 class 的 属性,根据我能找到的所有内容,这看起来应该可以正常工作,但事实并非如此。
MasterPage背后的代码示例:
public partial class myMasterPage : System.Web.UI.MasterPage
{
private string pageName = "";
public string PageName
{
get { return PageName; }
set { pageName = value; }
}
private int pageID;
public int PageID
{
get { return pageID; }
set { pageID = value; }
}
}
其中一个页面代码:
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" Inherits="Help" Codebehind="Help.aspx.cs" %>
<%@ MasterType TypeName="ISLMasterPage" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
最后是该页面的隐藏代码:
public partial class Help : BasePage
{
protected void Page_PreInit(object sender, EventArgs e)
{
base.PageID = 1;
Master.PageID = 1;
}
}
我已经尝试将 MasterType 更改为虚拟路径...没有...我得到的错误是:
E'System.Web.UI.MasterPage' does not contain a definition for 'PageID' and no extension method 'PageID' accepting a first argument of type 'System.Web.UI.MasterPage' could be found (are you missing a using directive or an assembly reference?)
所以对我来说,很明显它没有意识到我们想要隐藏代码这一事实。
我猜这是显而易见的事情,但我从来没有以这种方式组织我的代码。
您的代码不知道您的母版页是 "myMasterPage"
protected void Page_PreInit(object sender, EventArgs e)
{
base.PageID = 1;
(Master as myMasterPage).PageID = 1;
}
您的代码似乎继承了 BasePage
public partial class Help : BasePage
它覆盖了正常的 System.Web.UI.Page
并允许轻松访问每个使用 BasePage
的页面上的属性。
在 BasePage class 中可能是这样的:
public class BasePage : System.Web.UI.Page
{
public Site master;
public BasePage()
{
this.Load += new EventHandler(this.Page_Load);
}
protected void Page_Load(object sender, EventArgs e)
{
master = ((Site)(Page.Master));
}
}
在此示例中,在继承 BasePage
的页面上,始终可以使用 master
访问母版页
所以...我必须让某人的旧 (2010) .Net 3.5 C# 代码正常工作...当然,开发人员不再有项目文件,只有源代码...
长话短说,代码正在尝试访问母版页 class 的 属性,根据我能找到的所有内容,这看起来应该可以正常工作,但事实并非如此。
MasterPage背后的代码示例:
public partial class myMasterPage : System.Web.UI.MasterPage
{
private string pageName = "";
public string PageName
{
get { return PageName; }
set { pageName = value; }
}
private int pageID;
public int PageID
{
get { return pageID; }
set { pageID = value; }
}
}
其中一个页面代码:
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" Inherits="Help" Codebehind="Help.aspx.cs" %>
<%@ MasterType TypeName="ISLMasterPage" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
最后是该页面的隐藏代码:
public partial class Help : BasePage
{
protected void Page_PreInit(object sender, EventArgs e)
{
base.PageID = 1;
Master.PageID = 1;
}
}
我已经尝试将 MasterType 更改为虚拟路径...没有...我得到的错误是:
E'System.Web.UI.MasterPage' does not contain a definition for 'PageID' and no extension method 'PageID' accepting a first argument of type 'System.Web.UI.MasterPage' could be found (are you missing a using directive or an assembly reference?)
所以对我来说,很明显它没有意识到我们想要隐藏代码这一事实。
我猜这是显而易见的事情,但我从来没有以这种方式组织我的代码。
您的代码不知道您的母版页是 "myMasterPage"
protected void Page_PreInit(object sender, EventArgs e)
{
base.PageID = 1;
(Master as myMasterPage).PageID = 1;
}
您的代码似乎继承了 BasePage
public partial class Help : BasePage
它覆盖了正常的 System.Web.UI.Page
并允许轻松访问每个使用 BasePage
的页面上的属性。
在 BasePage class 中可能是这样的:
public class BasePage : System.Web.UI.Page
{
public Site master;
public BasePage()
{
this.Load += new EventHandler(this.Page_Load);
}
protected void Page_Load(object sender, EventArgs e)
{
master = ((Site)(Page.Master));
}
}
在此示例中,在继承 BasePage
master
访问母版页