内容嵌套母版页未显示

时间:2013-01-13 15:12:50

标签: c# asp.net master-pages umbraco

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

My Template structure 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>
  

块引用       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>
  

块引用       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>

3 个答案:

答案 0 :(得分:1)

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

http://yoursitedomain.com/Header.aspx

http://yoursitedomain.com/?altTempalte=Header

如果显示内容,则可能只是您认为已分配给该模板的页面,而不是。

如果您认为它是一个错误,那么可能会提交错误报告或在我们的Umbraco上提出这个问题。

答案 1 :(得分:1)

我认为您最好创建宏来封装小块功能(如Header Content)并将它们放入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),那么您的设计仍然有用 - 但似乎仍然比它需要的更复杂。

答案 2 :(得分:1)

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

enter image description here

enter image description here

<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>

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