2012-12-06 43 views
6

我想,所以我创建下列母版页使用嵌套母版页的嵌套母版页:内容控件必须是内容页或顶层控制引用母版页

<%@ 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> 

和我创建下列页面使用该母版页:

<%@ 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> 

我得到以下错误:

内容控件必须是内容页或顶层控制引用母版页

+0

是不是因为你的'ContentPlaceHolder'在顶级主页面i在你的'表格'这是runat服务器,所以它不是顶级? – Chris

回答

8

的HTML代码在你的嵌套母版必须与ASP来包裹 嵌套母版页:内容标签与来自“主”主页的contentplaceholderid。

3

只是为了演示埃里克的观点:

父母版:

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

儿童的母版:

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

页:

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> 
    <!-- content --> 
</asp:Content> 
相关问题