Umbraco嵌套主页

时间:2012-02-02 21:19:00

标签: asp.net master-pages umbraco

我正在尝试在Umbraco 4.7.1中创建嵌套母版页,但我遇到了问题。

我有一个母版页doctype和一个索引doctype,它是母版页的子代。

然后我有一个名为幻灯片放映的单独doctype。

我的内容如下:

  • 索引
    • 幻灯片

我的母版页模板具有对此索引的引用:

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

然后在索引中我的代码在

之间
    <asp:Content ContentPlaceHolderID="Content" runat="server">
    </asp:Content>

并在索引模板中引用下一个级别,即图像滑块

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

并且SlideShow模板之间的代码为

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

它适用于索引,但不适用于幻灯片。

我能想到的唯一区别是索引的doctype实际上是master的子doctype。 SlideShow doctype实际上是它自己的doctype。不是他们中的任何一个孩子。

任何想法如何使这个工作?

1 个答案:

答案 0 :(得分:5)

在Umbraco中嵌套页面非常好。实际上,它实际上是一种ASP.Net机制,它不一定与Umbraco中的任何heirachy有关。因此,可以使用不会相互继承的唯一Umbraco文档类型,但是另一个主模板嵌套在一起。

主模板的工作方式是主设备没有指定从哪个模板继承模板,它总是引用主模板的子模板,就像面向对象编程语言中的继承一样。子项中的<asp:Content />标记指定它从父项使用的<asp:ContentPlaceHolder />

我对你如何从描述中设置主模板感到有点困惑,但你应该尝试将其设置如下......

Root Master Template:

<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

希望它有所帮助。