2009-05-28 4 views
4

Я хотел бы иметь страницу, на которой используется главная страница ребенка, заполнить заполнитель содержимого родителя, но я не могу заставить его работать. Всякий раз, когда я пытаюсь, я получаю сообщение об ошибке «Не могу найти ContentPlaceHolder« customHead »на главной странице« /templates/info.master », проверьте атрибут ContentPlaceHolderID элемента управления содержимым на странице содержимого».Заполнение родительской главной страницы от ребенка

У меня есть главной страницы (/templates/main.master), определенный как это:

<%@ Master Language="C#" %> 
<head runat="server"> 
    <title>foo</title> 
    <asp:contentplaceholder runat="server" id="customHead" /> 
</head> 
<body> 
    <div id="content"> 
     <asp:contentplaceholder runat="server" id="masterContent" /> 
    </div> 

Тогда у меня есть мастер ребенка (/templates/info.master) определяется следующим образом:

<%@ Master Language="C#" MasterPageFile="/templates/main.master" %> 
<asp:content id="homeContent" contentPlaceHolderId="masterContent" Runat="server"> 
<div id="info-container"> 
    <div id="info-content"> 
     <asp:contentplaceholder runat="server" id="infoContent"/> 
    </div> 
</div> 
</asp:content> 

И, наконец, моя страница определяется следующим образом:

<%@ Page Language="C#" MasterPageFile="/templates/info.master" %> 
<asp:Content ID="head" ContentPlaceHolderID="customHead" runat="server"> 
    <!-- Custom header area --> 
    <link rel="stylesheet" type="text/css" href="foo.css"/> 
</asp:Content> 
<asp:Content ID="content" ContentPlaceHolderID="childContent" runat="server"> 
    This is my child content 
</asp:Content> 

ответ

4

Вы не указали «customeHead» на главной странице вашего ребенка. Если вы хотите открыть область содержимого основных страниц root, вам нужно будет открыть ее на главной странице ребенка.

<%@ Master Language="C#" MasterPageFile="/templates/main.master" %> 
<asp:contentplaceholder runat="server" id="customHead" /> 
<asp:content id="homeContent" contentPlaceHolderId="masterContent" Runat="server"> 
    <div id="info-container"> 
     <div id="info-content"> 
      <asp:contentplaceholder runat="server" id="infoContent"/>  
     </div> 
    </div> 
</asp:content> 
+0

Добавление заполнитель там просто дает мне эту ошибку: «Parser Сообщение об ошибке: Только Элементы управления содержимым могут непосредственно на странице контента, который содержит элементы управления содержанием.» –

+3

@ Zachary, я думаю, что у вас в основном это право, вам просто нужен элемент управления содержимым, встроенный в другой элемент управления содержимым на странице info.master: Mxyzptlk

+0

С добавлением Mxyzptlks он работал как шарм. Спасибо вам обоим! –

1

настраиваете вы его используете this.Page.Master?

Смежные вопросы