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

Orchardcms Orchard CMS ContentShapes-我可以添加包装器吗?,orchardcms,shapes,Orchardcms,Shapes,我在果园CMS中有一个资源,我通过一些较小的形状显示它(这样我可以在placement.info中调整布局顺序) 在驱动程序中,我通过返回组合(ContentShape(…)、ContentShape(…)、ContentShape(…)等来返回这些零件 但是,我希望每个较小形状的HTML都显示在HTML包装中(例如div或article之类) 我该怎么做呢 谢谢你是说一个Orchard包装器(全新的cshtml文件)还是一个HTML元素 在后一种情况下,可以在零件视图中执行以下操作: @{

我在果园CMS中有一个资源,我通过一些较小的形状显示它(这样我可以在placement.info中调整布局顺序)

在驱动程序中,我通过返回组合(ContentShape(…)、ContentShape(…)、ContentShape(…)等来返回这些零件

但是,我希望每个较小形状的HTML都显示在HTML包装中(例如div或article之类)

我该怎么做呢


谢谢

你是说一个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>

@显示(Model.Child)

我理解您试图实现的目标,但这并不是一个切实可行的方案。包装器应用于一个形状并组合返回多个形状。正如您所说,每个形状在placement.info文件中都有一个条目,因此您可以很容易地将这些形状放在不同的内容区域中,或者放在页面周围的区域中,而在这些区域中,包装器根本不起作用。有道理吗


答案可能是,您需要为正在显示的内容类型的内容视图创建覆盖,并在其中添加要放入包装器的内容。e、 g.如果您的内容类型称为MyType,而显示的类型为detail,则您的视图将称为content MyType.detail.cshtml。

这肯定会在每个视图文件周围放置一个包装,而不是在所有视图文件周围放置一个包装?我只有一个零件和驱动程序,但它通过在驱动程序显示中使用Combined()返回了许多视图/形状,因此每个形状在placement.info中都有一个条目(以便人们可以关闭/打开它们),谢谢!好的,我知道你从哪里来了。我会考虑一下是否把你的建议付诸实施。或者我是否应该从一个完全不同的角度来看这个问题。非常感谢!