1
我有上百個傳統的網絡表單頁面通過BasePage的覆蓋添加頁眉和頁腳渲染移植舊網頁使用masterpages
protected override void Render(HtmlTextWriter writer)
{
RenderHeader(writer);
base.Render(writer);
RenderFooter(writer);
}
新頁面使用母版的默認行爲。
我想知道是否有可能從BasePage添加asp:content控件而不更改每個* .aspx?
我做出的工作作爲一個小測試長有在ASPX
public partial class OldPage : Page
{
private MainContentTemplate mainContentTemplate;
protected override void OnPreInit(EventArgs e)
{
Page.MasterPageFile = "~/Site.Master";
mainContentTemplate = new MainContentTemplate();
AddContentTemplate("Main", mainContentTemplate);
base.OnPreInit(e);
}
}
public class MainContentTemplate : ITemplate
{
#region ITemplate Members
void ITemplate.InstantiateIn(Control container)
{
container.Controls.Add(new LiteralControl("Test string"));
}
#endregion
}
但沒有內容的,只要我在前面添加一些代碼中,我將得到: 內容控件必須頂在引用母版頁的內容頁面或嵌套母版頁中的級別控件。
我不確定,但我認爲覆蓋ControlCollection控件可能有幫助,但我還沒有找到解決方案。