Orchard CMS ContentShapes - 我可以添加包装器吗?

Orchard CMS ContentShapes - can I add a wrapper?

我在 OrchardCMS 中有一个资源,我通过许多较小的形状显示它(以便我可以调整 placement.info 中的布局顺序)。

在驱动程序中,我通过返回 Combined(ContentShape(...), ContentShape(...), ContentShape(...)) 等来返回这些部分

但是我希望每个较小形状的 HTML 出现在 HTML 包装纸(例如 div 或文章等)

我该怎么做?

谢谢

您是指 Orchard 包装器(全新的 cshtml 文件),还是只是 HTML 元素?

在后一种情况下,您可以在零件视图中执行以下操作:

@{
    var tag = Tag(Model, "article");
}

@tag.StartElement

    stuff

@tag.EndElement

如果您想在您的元素周围包装一个(通用)包装器,您可以在 placement.info 中执行以下操作:

<Place Parts_MyPart="Content:1;Wrapper=MyWrapper" />
<Place Parts_MyOtherPart="Content:2;Wrapper=MyWrapper" />

并创建 MyWrapper.cshtml:

<article>
    @Display(Model.Child)
</article>

我明白你想要达到的目的,但这并不是一个真正可行的方案。包装器应用于形状并组合 returns 多个形状。正如您所说,每个形状在 placement.info 文件中都有一个条目,因此您可以轻松地将这些形状放在不同的内容区域或分布在页面周围的区域中,而包装器将无法正常工作。有道理吗?

答案可能是您需要为要显示的内容类型的内容视图创建覆盖,并在其中添加要放入包装器的内容。例如如果您的内容类型称为 MyType 并且显示的类型是详细信息,则您的视图将称为 Content-MyType.Detail.cshtml.