如果您可以在子页面后面的代码中更改母版页的内容,您可以执行以下操作:
将 runat="server" 添加到要编辑的母版页中的 html 控件:
Site.Master
...
<ul id="menu" runat="server">
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a></li>
</ul>
...
然后在需要更改菜单内容的子页面后面的代码中,放入如下代码:
protected void Page_Load(object sender, EventArgs e)
{
HtmlGenericControl c = Master.FindControl("menu") as HtmlGenericControl;
if (c != null)
{
c.Controls.Clear();
c.Controls.Add(new HtmlGenericControl("li") { InnerHtml = "<a href=\"#\">Link 3</a>" });
}
}
或您想放入菜单控件的任何 html。
没有代码的页面将输出以下html:
<ul id="ctl00_menu">
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a></li>
</ul>
以及带有代码的页面显示以下内容:
<ul id="ctl00_menu">
<li><a href="#">Link 3</a></li>
</ul>
显然,您不想按原样使用此代码。这只是一个原型。我会重构它以允许将内容添加到任何控件并将其放入我所有页面都将继承的基页面类中。