Bil*_*ill 2 asp.net master-pages umbraco
我正在尝试在Umbraco 4.7.1中创建嵌套的母版页,我遇到了问题.
我有一个母版页doctype和一个索引doctype,它是masterpage的子代.
然后我有一个单独的doctype称为幻灯片放映.
我的内容如下:
我的母版页模板具有对索引的引用,如下所示:
<asp:ContentPlaceHolder ID="Content" runat="server" />
Run Code Online (Sandbox Code Playgroud)
然后在索引里面我的代码介于两者之间
<asp:Content ContentPlaceHolderID="Content" runat="server">
</asp:Content>
Run Code Online (Sandbox Code Playgroud)
在索引模板中,我引用了下一个级别,即图像滑块
<asp:ContentPlaceHolder ID="SlideShow" runat="server" />
Run Code Online (Sandbox Code Playgroud)
并且SlideShow模板之间有代码
<asp:Content ContentPlaceHolderID="SlideShow" runat="server">
</asp:Content>
Run Code Online (Sandbox Code Playgroud)
它适用于索引,但不适用于幻灯片.
我能想到的唯一区别是索引的doctype实际上是master的子doctype.SlideShow doctype实际上是它自己的doctype.不是他们中的任何一个孩子.
任何想法如何让这个工作?
在Umbraco中嵌套页面非常好.实际上,它实际上是一种ASP.Net机制,它不一定与Umbraco中的任何heirachy有关.因此,可以使用不会相互继承的唯一Umbraco文档类型,但是另一个主模板嵌套在一起.
主模板的工作方式是主模式没有指定哪些模板从模板继承,它始终是引用主模板的子模板,非常类似于面向对象编程语言中的继承.子项中的<asp:Content />标记指定<asp:ContentPlaceHolder />它从父项中使用的标记.
我对你如何从描述中设置主模板感到有点困惑,但你应该尝试将其设置如下...
Root Master模板:
<asp:ContentPlaceHolder ID="Content" runat="server" />
Run Code Online (Sandbox Code Playgroud)
索引主模板:
<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>
Run Code Online (Sandbox Code Playgroud)
幻灯片放映主模板:
<asp:Content ContentPlaceHolderID="IndexLeft" runat="server">
<!-- your html -->
</asp:Content>
<asp:Content ContentPlaceHolderID="IndexRight" runat="server">
<!-- your html -->
</asp:Content>
Run Code Online (Sandbox Code Playgroud)
您可以根据需要创建任意数量的嵌套模板,允许健全.制作文档类型使用模板Index将不包括幻灯片放映.你需要给它Slide Show模板.
这里有更多信息:http://msdn.microsoft.com/en-us/library/ie/x2b3ktt7.aspx
希望能帮助到你.