2012-02-02 11 views
2

Umbraco 4.7.1でネストされたマスターページを作成しようとしていますが、問題があります。Umbracoネストされたマスターページ

私はmasterpageのdoctypeとmasterpageの子であるindex doctypeを持っています。

次に、私はスライドショーと呼ばれる個別のdoctypeを持っています。

私の内容は次のようになります。

  • インデックス
    • スライドショー

は私のマスターページテンプレートは、このようなインデックスへの参照を持っています

<asp:ContentPlaceHolder ID="Content" runat="server" /> 

は、インデックス内の私のコードは、私がイメージスライダー

<asp:ContentPlaceHolder ID="SlideShow" runat="server" /> 

とスライドショーテンプレートにある

<asp:Content ContentPlaceHolderID="SlideShow" runat="server"> 
    </asp:Content> 
間のコードを持って次のレベルを参照
<asp:Content ContentPlaceHolderID="Content" runat="server"> 
    </asp:Content> 

とインデックステンプレート内にあります

インデックスでは機能しましたが、スライドショーでは機能しませんでした。

私が手で考えることができる唯一の違いは、インデックスのdoctypeは実際にはマスターの子のdoctypeです。 SlideShow doctypeは実際には自分のdoctypeです。いずれかの子供ではありません。

どのようにすればよいでしょうか?

答えて

5

Umbracoの中にネストされたページを置いても問題ありません。実際には、実際にはUmbracoのヒーローではないASP.Netのメカニズムです。したがって、互いに継承しないユニークなUmbracoドキュメントタイプを持つことは可能ですが、一方のマスターテンプレートはもう一方に入れ子になっています。

マスターテンプレートは、マスターがテンプレートを継承しないようにする方法で動作します。オブジェクト指向プログラミング言語の継承と同じように、常にマスターテンプレートを参照する子テンプレートです。子の<asp:Content />タグは、親から使用する<asp:ContentPlaceHolder />を指定します。

説明からマスターテンプレートをどのように設定したのかちょっと混乱しますが、次のような設定にしてください。

ルートマスターテンプレート:

<asp:ContentPlaceHolder ID="Content" runat="server" /> 

インデックスマスターテンプレート:

<asp:Content ContentPlaceHolderID="Content" runat="server"> 

    <!-- your html --> 

    <asp:ContentPlaceHolder ID="IndexLeft" runat="server" /> 

    <!-- your html --> 

    <asp:ContentPlaceHolder ID="IndexRight" runat="server" /> 

    <!-- your html --> 

</asp:Content> 

スライドショーマスターテンプレート:

<asp:Content ContentPlaceHolderID="IndexLeft" runat="server"> 

    <!-- your html --> 

</asp:Content> 
<asp:Content ContentPlaceHolderID="IndexRight" runat="server"> 

    <!-- your html --> 

</asp:Content> 

あなたは必要な数のネストされたテンプレートを作成することができ、正気は - 許容。ドキュメントタイプをテンプレートにするにはIndexにはスライドショーは含まれません。代わりにSlide Showテンプレートを付ける必要があります。

その詳細はここにあります:

http://msdn.microsoft.com/en-us/library/ie/x2b3ktt7.aspxはそれがお役に立てば幸いです。

+0

複数の入れ子になったテンプレートを作成したい場合はどうすればよいですか。 あなたのリンクが示すように。 Content1とContent2。明らかにdoctypeに両方のテンプレートを与えることはできません。 – Bill

+0

うん、それも良いです。複数のネストされたテンプレートを表示するための答えを更新しました。子テンプレートは、マスターテンプレートのすべてのContentPlaceHoldersにコンテンツを提供する責任を負う** onlyエンティティです。あなたが他のテクノロジーで見つけた「インクルード」と同じようにマスターテンプレートが機能しないことは、Umbracoマクロのためのものです。 –

+0

ありがとうございます。それは理にかなっている! – Bill

関連する問題