2012-12-06 26 views
6

voglio usare pagina master nidificate così ho creare la seguente pagina master:contenuti controlli devono essere i controlli di primo livello in una pagina di contenuto o una pagina master nidificata che fa riferimento a una pagina master

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="test.master.cs" Inherits="DocumentFlowUI.test" MasterPageFile="~/MasterPage2.master" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <asp:ContentPlaceHolder ID="head" runat="server"> 
    </asp:ContentPlaceHolder> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> 
      <asp:Button ID="Button1" runat="server" Text="Button" /> 
     </asp:ContentPlaceHolder> 
    </div> 
    </form> 
</body> 
</html> 

e creo la pagina seguente per utilizzare tale pagina master:

<%@ Page Title="" Language="C#" MasterPageFile="~/test.Master" AutoEventWireup="true" CodeBehind="WebForm4.aspx.cs" Inherits="DocumentFlowUI.WebForm4" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> 
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> 
</asp:Content> 

ottengo il seguente errore:

Content controlli devono essere i controlli di primo livello in una pagina di contenuto o una pagina master nidificata che fa riferimento a una pagina master

+0

E 'perché il vostro 'ContentPlaceHolder' in la master page di primo livello i s dentro il tuo 'form' che è il server runat quindi non è di primo livello? – Chris

risposta

8

Il codice HTML nel tuo masterpage annidata deve essere spostato con un asp: tag di contenuto con un contentplaceholderid dalla pagina principale "master".

3

Proprio per dimostrare il punto di Erik:

Parent masterpage:

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

masterpage bambini:

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> 
    <asp:ContentPlaceHolder ID="head" runat="server" /> 
</asp:Content> 

Pagina:

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> 
    <!-- content --> 
</asp:Content> 
Problemi correlati