2

我正在使用 umbraco CMS 版本 4.11.3 内容嵌套母版页未加载(或显示)。(内容标题模板未显示。)请帮助我。

我的模板结构 Master.master 代码:

<%@ Master Language="C#" MasterPageFile="~/umbraco/masterpages/default.master" AutoEventWireup="true" %>

<asp:Content ContentPlaceHolderID="ContentPlaceHolderDefault" runat="server">
    <!doctype html>
    <html>
    <head title="Movafaqiyat" runat="server">

    </head>
    <body>
        <form id="form1" runat="server">
            <div id="MasterMaster" style="width: 100%;">
                <div style="width: 100%;">
                    <asp:ContentPlaceHolder ID="HeaderParentContent" runat="server">
                    </asp:ContentPlaceHolder>
                </div>
                <div style="width: 100%;">
                    <asp:ContentPlaceHolder ID="MenuContent" runat="server">
                    </asp:ContentPlaceHolder>
                </div>
                <div style="width: 100%;">
                    <asp:ContentPlaceHolder ID="FooterParentContent" runat="server">
                    </asp:ContentPlaceHolder>
                </div>
            </div>
        </form>
    </body>
    </html>
</asp:Content>

Blockquote HeaderParent.master 代码:

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

<asp:Content ContentPlaceHolderID="HeaderParentContent" runat="server">
    <div id="HeaderParentMaster" style="width: 100%; border: 1px solid red;">
        <div>
            <asp:ContentPlaceHolder ID="HeaderContent" runat="server">
            </asp:ContentPlaceHolder>
        </div>
    </div>
</asp:Content>

Blockquote Header.master 代码:

<%@ Master Language="C#" MasterPageFile="~/masterpages/HeaderParent.master" AutoEventWireup="true" %>
    <asp:Content ContentPlaceHolderID="HeaderContent" runat="server">
        <div style="width: 100%">
            Did not show HEADER.Master IN HERE!    
        </div>
    </asp:Content>
4

3 回答 3

1

@BeaverProj 和 @amelvin:非常感谢您对我的回答。它们对我都很有用。但我用这种方法解决了我的问题:

在此处输入图像描述

在此处输入图像描述

<form id="form1" runat="server">
   <div id="MasterMaster" style="width: 100%;">
       <uc1:HeaderControl runat="server" ID="HeaderControl" />
   <div>
       <asp:ContentPlaceHolder ID="defaultPageContent" runat="server">
       </asp:ContentPlaceHolder>
   </div>
 </form>

DefaultPage.master 代码:

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

<%@ Register Src="~/usercontrols/DefaultControl.ascx" TagPrefix="uc1" TagName="DefaultControl" %>

<asp:Content ContentPlaceHolderID="defaultPageContent" runat="server">
    <uc1:DefaultControl runat="server" ID="DefaultControl" />
</asp:Content>

应用这些更改后,我得到了我需要的东西。现在,当我运行程序时,我看到了默认页面。

于 2013-01-16T08:59:34.710 回答
1

标题模板是否分配给任何内容页面?尝试将该模板用作 altTemplate 并查看它是否有效:

http://yoursitedomain.com/Header.aspx

http://yoursitedomain.com/?altTempalte=标头

如果这显示了内容,那么它可能只是您认为分配了该模板的页面,没有。

如果您认为这是一个错误,那么也许可以提交错误报告或在 Our Umbraco 上提出这个问题。

于 2013-01-13T23:06:12.973 回答
1

我认为您最好创建宏来封装小块功能(如标题内容)并将它们放入 Master.master 模板中。而不是继承母版页,其中子母版页仅用于简单呈现。

就设计而言,您将创建使用 Header.master 文件中设置的设计的页面——我认为您实际上并不想这样做。它会建议您将创建一个名为 header.aspx 的内容页面——基于header.Master 模板——这听起来是错误的。

母版页可以继承结构和设计 - 但链底部的最终模板是呈现包含连接文档类型中设置的字段的页面的基础 - 不仅仅是用于演示。

类似以下的内容是一种替代方法,将渲染的内容(静态或动态)放入宏中——作为奖励,然后可以将宏缓存在 Umbraco 中:

<div style="width: 100%;">
    <asp:Macro ID="HeaderParentContent" runat="server" parm1="#inheritedValue"/>
</div>

如果您打算将内容模板放在 header.master 模板(例如 MyPageTemplate.master)下,那么您的设计仍然可以工作——但看起来仍然比需要的复杂一些。

于 2013-01-15T15:39:41.143 回答