2

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

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

我首先检查以确保我的主子模板代码看起来没问题。我删除了有问题的模板,重新创建了新模板,甚至使用了 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 分配给文档类型。当我发布文档并查看它时,我收到了上述错误。我难住了。我在另一篇文章中读到这可能是病毒的症状,但目前似乎并非如此。任何帮助深表感谢!!

4

1 回答 1

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>
于 2013-06-20T06:06:14.787 回答