我遇到了一个我似乎无法解释的问题。我在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分配给文档类型。当我发布文档并查看它时,我收到了上面的错误。我很难过。我在另一篇文章中读过,这可能是病毒的症状但目前似乎并非如此。非常感谢任何帮助!!
答案 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>