如何解决找不到ContentPlaceHolder错误?

时间:2012-02-09 18:10:53

标签: asp.net webforms master-pages

尝试实施新内容页面的“呃”时刻

这是结构

Master Page
---- Nested Master Page
-------- Nested Master's Content Page

标记:

母版页

<asp:ContentPlaceHolder ID="bodyContent" runat="server">
</asp:ContentPlaceHolder>

嵌套母版页

MasterPageFile="~/Views/Shared/Administrator.Master"
<asp:Content ID="Content2" CotentPlaceHolderID="bodyContent" runat="server">
 </asp:Content>

嵌套大师的内容页面

MasterPageFile="~/Views/Intervention/InterventionMaster.master"
<asp:Content runat="server" ID="myContent" ContentPlaceHolderID="Content2">
 </asp:Content>

收到错误:

  

在母版页中找不到ContentPlaceHolder'Content2'   '/Views/Inventionvention/InterventionMaster.master',验证内容   控件的内容页面中的ContentPlaceHolderID属性。

我可能做错了什么?

3 个答案:

答案 0 :(得分:26)

您没有ContentPlaceHolder ID = "Content2"。您只拥有此类ID的内容。将另一个占位符放在内容ID="Content2"内,然后连接页面内容。

母版页

<asp:ContentPlaceHolder ID="bodyContent" runat="server">
</asp:ContentPlaceHolder>

嵌套母版页

<asp:Content ID="Content2" ContentPlaceHolderID="bodyContent" runat="server">
    <asp:ContentPlaceHolder ID="nestedContent" runat="server">
    </asp:ContentPlaceHolder>
 </asp:Content>

嵌套大师的内容页面

<asp:Content runat="server" ID="myContent" ContentPlaceHolderID="nestedContent">
 </asp:Content>

答案 1 :(得分:2)

一个肮脏的快速解决方案是绕过嵌套母版页 来自嵌套大师的内容页面

protected void Page_PreInit(object sender, EventArgs e)
        {
            Master.MasterPageFile = "~/Whatever.Master";
        }

答案 2 :(得分:0)

使用 ID="MainContent"

<asp:Content ID="Content2" ContentPlaceHolder ID="MainContent" runat="server"></asp:Content>