umbraco模板错误:“内容控件必须是内容页面中的顶级控件或引用母版页的嵌套母版页。”

时间:2013-06-20 04:40:38

标签: templates master-pages umbraco

我遇到了一个我似乎无法解释的问题。我在Umbraco中设置了一个主模板和两个子模板,我收到以下错误:

  

内容控件必须是内容页面或引用母版页的嵌套母版页中的顶级控件。

我首先检查以确保我的主孩子模板代码并且看起来没问题。我删除了有问题的模板,重新创建了新模板,甚至使用了ID名称,但没有任何改变。

这是主模板(A-BTestingItem.master)代码:

<%@ Master Language="C#" MasterPageFile="~/umbraco/masterpages/default.master" AutoEventWireup="true" %> 
<asp:ContentPlaceHolder Id="MainContent" runat="server">
<umbraco:Macro Alias="Redirector" runat="server" />
</asp:ContentPlaceHolder>

这是模板A的第一个子模板代码:

<%@ Master Language="C#" MasterPageFile="~/masterpages/A-BTestingItem.master" AutoEventWireup="true" %>

<asp:content ContentPlaceHolderId="MainContent" runat="server">
Hello from Template A
</asp:content>

这是模板B的第二个子模板代码:

<%@ Master Language="C#" MasterPageFile="~/masterpages/A-BTestingItem.master" AutoEventWireup="true" %>

<asp:content ContentPlaceHolderId="MainContent" runat="server">
Hello from Template B
</asp:content>

我将模板A和B分配给文档类型。当我发布文档并查看它时,我收到了上面的错误。我很难过。我在另一篇文章中读过,这可能是病毒的症状但目前似乎并非如此。非常感谢任何帮助!!

1 个答案:

答案 0 :(得分:5)

您的主模板(A-BTestingItem.master)缺少Content标记,该标记应包含ContentPlaceHolder标记,如下所示:

<%@ Master Language="C#" MasterPageFile="~/umbraco/masterpages/default.master" AutoEventWireup="true" %>
<asp:Content ContentPlaceHolderId="ContentPlaceHolderDefault" runat="server">
    <asp:ContentPlaceHolder Id="MainContent" runat="server">
        <umbraco:Macro Alias="Redirector" runat="server" />
    </asp:ContentPlaceHolder>
</asp:Content>