2012-02-09 10 views
20

Avere un momento "duh" cercando di attuare una nuova pagina di contenutoCome risolvere Impossibile trovare l'errore ContentPlaceHolder?

Ecco la struttura

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

Mark up:

pagina master

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

annidata Maestro Pagina

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

Contenuti Pagina di nidificato Maestro

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

visualizzato l'errore:

Cannot find ContentPlaceHolder 'Content2' in the master page '/Views/Intervention/InterventionMaster.master', verify content control's ContentPlaceHolderID attribute in the content page.

Che cosa potrei fare male?

+0

E 'possibile che il contenuto-page è facendo riferimento alla pagina principale più esterna invece di quella annidata? – n8wrl

+0

Prima di tutto, stai annidando le pagine master. Cosa ti compra? Molto probabilmente hai la definizione master sbagliata nella parte superiore della tua pagina aspx. Puoi mostrarci la direttiva MasterPageFile della pagina Contenuto nidificato? –

+0

@ n8wrl - Non so come, dal momento che ho questo nella pagina di contenuto: MasterPageFile = "~/Views/Intervention/InterventionMaster.master –

risposta

25

Non si dispone di ContentPlaceHolder con ID = "Content2". Hai solo contenuto con tale ID. Inserisci un altro segnaposto all'interno del contenuto con ID="Content2" e quindi connettiti al contenuto della pagina.

pagina master

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

nidificate Maestro contenuto della pagina Pagina

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

annidata del Maestro

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

Oh, questo è quello che era –

+0

Ciao c'è un errore di sintassi nel master annidato sezione della pagina: CotentPlaceHolderID deve essere ContentPlaceHolderID –

2

Una soluzione sporca-rapida sarebbe quello di bypassare il nidificati Pagina master dal Content Pagina del Maestro nidificato

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

UsaID="MainContent"

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