Как решить Не удается найти ошибку ContentPlaceHolder? - PullRequest
21 голосов
/ 09 февраля 2012

Имея «скучный» момент, пытаясь реализовать новую страницу контента

Вот структура

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/Intervention/InterventionMaster.master', проверить содержимое Атрибут ContentPlaceHolderID элемента управления на странице содержимого.

Что я мог делать не так?

Ответы [ 3 ]

26 голосов
/ 09 февраля 2012

У вас нет ContentPlaceHolder с ID = "Content2".У вас есть только контент с таким идентификатором.Поместите другой заполнитель внутри содержимого с помощью 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>
2 голосов
/ 10 марта 2014

Грязно-быстрое решение - обойти вложенную главную страницу со страницы содержимого вложенного мастера

protected void Page_PreInit(object sender, EventArgs e)
        {
            Master.MasterPageFile = "~/Whatever.Master";
        }
0 голосов
/ 13 июня 2016

Использование ID="MainContent"

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