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

ヘッダーテンプレートはコンテンツページに割り当てられていますか?そのテンプレートをaltTemplateとして使用してみて、それが機能するかどうかを確認してください。

http://yoursitedomain.com/Header.aspx

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

それがコンテンツを表示している場合は、そのテンプレートが割り当てられていると思われるページには割り当てられていない可能性があります。

バグだと思われる場合は、バグレポートを提出するか、Umbracoでこの質問をしてください。

于 2013-01-13T23:06:12.973 に答える
1

小さな機能(ヘッダーコンテンツなど)をカプセル化するマクロを作成し、それらをMaster.masterテンプレートにドロップする方がよいと思います。子マスターページが単純なレンダリングのためだけに存在するマスターページを継承するのではなく。

デザインが立っているので、Header.masterファイルで設定されたデザインを使用するページを作成することになります—そして私はあなたが実際にそれをしたいとは思わない。header.Masterテンプレートに基づいてheader.aspxというコンテンツページを作成することをお勧めしますが、これは間違っているように聞こえます。

マスターページは構造とデザインを継承できますが、チェーンの最下部にある最終的なテンプレートは、プレゼンテーション用だけでなく、接続するDoctypeで設定されたフィールドを含むレンダリングされるページの基礎になります。

次のようなものが代替手段であり、レンダリングされたコンテンツ(静的または動的)をマクロに配置します—ボーナスとして、マクロをUmbracoにキャッシュできます。

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

コンテンツテンプレートをheader.masterテンプレート(MyPageTemplate.masterなど)の下に配置する場合でも、デザインは機能しますが、必要以上に複雑に見えます。

于 2013-01-15T15:39:41.143 に答える
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 に答える