【问题标题】:umbraco template error: "Content controls have to be top-level controls in a content page or a nested master page that references a master page."umbraco 模板错误:“内容控件必须是内容页或引用母版页的嵌套母版页中的顶级控件。”
【发布时间】:2013-06-20 14:06:14
【问题描述】:

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

【问题讨论】:

    标签: templates master-pages umbraco


    【解决方案1】:

    您的主模板 (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>
    

    【讨论】:

    • 谢谢,非常感谢!我觉得我以前尝试过,但也许我在晚上编程太晚了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多