Orchard CMS:如何在视图中显示布局部分?
Orchard CMS: How to display a Layout Part in a view?
我正在尝试为 returns 多个页面的查询指定一个不同的查询布局,并按照这个出色的指南完全接管列表的呈现:http://www.ideliverable.com/blog/ways-to-render-lists-of-things
我有基本的实施设置并且知道它可以通过使用以下简单的渲染代码来工作:
@using Orchard.ContentManagement
@using Orchard.Core.Title.Models
@using Orchard.Layouts.Models
@{
var webPages = ((IEnumerable<ContentItem>)Model.ContentItems).ToList();
}
@foreach (var wp in webPages)
{
var titlePart = wp.As<TitlePart>();
var wpTitle = titlePart.Title;
<p>@T("{0} Title is ", wpTitle)</p>
}
问题:
但是,当尝试包含每个页面的布局时,我似乎无法弄清楚该怎么做?使用下面的代码,只有文本 'Orchard.Layouts.Models.LayoutPart' 在 HTML 中被错误呈现。
var layoutPart = wp.As<LayoutPart>();
@Display(layoutPart)
因此,我假设 LayoutPart 与 Orchard 中的其他常见部分不同,因为我还测试了许多其他部分都成功呈现,除了 Layouts(我认为 LayoutPart 之前必须以某种方式构建正在展示,但那是抓着救命稻草)?
那么如何做呢?
有趣的是,你基本上是对的。布局必须在显示之前构建:
@Display(BuildDisplay(layoutPart, "#display type#")) //display type: Summary / Detail
我正在尝试为 returns 多个页面的查询指定一个不同的查询布局,并按照这个出色的指南完全接管列表的呈现:http://www.ideliverable.com/blog/ways-to-render-lists-of-things
我有基本的实施设置并且知道它可以通过使用以下简单的渲染代码来工作:
@using Orchard.ContentManagement
@using Orchard.Core.Title.Models
@using Orchard.Layouts.Models
@{
var webPages = ((IEnumerable<ContentItem>)Model.ContentItems).ToList();
}
@foreach (var wp in webPages)
{
var titlePart = wp.As<TitlePart>();
var wpTitle = titlePart.Title;
<p>@T("{0} Title is ", wpTitle)</p>
}
问题: 但是,当尝试包含每个页面的布局时,我似乎无法弄清楚该怎么做?使用下面的代码,只有文本 'Orchard.Layouts.Models.LayoutPart' 在 HTML 中被错误呈现。
var layoutPart = wp.As<LayoutPart>();
@Display(layoutPart)
因此,我假设 LayoutPart 与 Orchard 中的其他常见部分不同,因为我还测试了许多其他部分都成功呈现,除了 Layouts(我认为 LayoutPart 之前必须以某种方式构建正在展示,但那是抓着救命稻草)?
那么如何做呢?
有趣的是,你基本上是对的。布局必须在显示之前构建:
@Display(BuildDisplay(layoutPart, "#display type#")) //display type: Summary / Detail