我正在尝试在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。不是他们中的任何一个孩子。
任何想法如何使这个工作?
答案 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
希望它有所帮助。