asp.net - 使用 ContentPlaceHolder 的默认内容而不是页面内容

标签 asp.net master-pages contentplaceholder

当使用母版页的页面没有母版页 ContentPlaceHolders 之一的 asp:Content 控件时,将显示默认内容。我想在确实具有该 ContentPlaceHolder 的 asp:Content 控件的页面上使用该默认内容。

在使用母版页的页面中,我想在代码中决定是使用默认内容还是特定于页面的内容。如何显示母版页中的默认内容而不是 ContentPlaceHolderID 的 asp:Content 控件中的内容?

例如,假设我有一个菜单 ContentPlaceHolder。默认内容显示基本菜单。该页面根据查询构建菜单,但如果查询没有结果,我想显示默认菜单。默认情况下,将显示空的 asp:Content 控件。如何获取母版页的默认内容?

最佳答案

一种方法是清除 Page_Load 中占位符内容的控件集合并添加更新的菜单。

protected void Page_Load(object sender, EventArgs e)
{
    if(needsBetterMenu)
    {
        ContentPlaceHolder holder = (ContentPlaceHolder)Master.FindControl("ContentPlaceHolder1");
        holder.Controls.Clear();
        holder.Controls.Add(betterMenu);
    }
}

关于asp.net - 使用 ContentPlaceHolder 的默认内容而不是页面内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1596199/

相关文章:

.net - 使用asp.net mvc作为基于REST的终结点

asp.net - 在 ASP.NET web.config 文件中设置备份数据库服务器

asp.net - 如何在后面的代码中将 TemplateField 添加到 gridview?

c# - 我可以使用具有两个不同母版页的相同内容页吗?

css - 如何使左侧菜单高度动态

asp.net - 内容占位符 : Repeated Content

asp.net - 我需要什么字符集才能在 CSV 中正确编码日语以在 Excel 中打开?

javascript - 无法修改 Controls 集合,因为该控件包含代码块(即 <% ...%>)ajax 工具包 html 编辑器

javascript - 国际电话号码 jQuery 插件 : flags and phone placeholder missing

asp.net - 获取 ContentPlaceHolder asp.net 中的控件