自定义内容部分的包装器 - 乌节路 CMS



使用Orchard管理员,我创建了一个名为"Spotlight Wrapper"的新内容部分,其中包含3个HTML字段。然后,我创建了一个名为"模板 1"的内容类型,并为其分配了"聚光灯包装器"。然后,我创建了一个名为"主页"的新"模板 1"内容项。然后,我创建了一个名为Fileds_Contrib.Html-Spotlight Wrapper.cshtml的文件,以将每个HTML字段包装在"Spotlight Wrapper"中,并且这是有效的。我现在补充说:

<Place Parts_SpotlightWrapper="Content:before;Wrapper=Parts_SpotlightWrapper" />

并创建了:

ViewsParts.SpotlightWrapper.cshtml
试图

将整个"聚光灯包装器"内容部分包装在一个但似乎无法让它工作?

您声明了一个包装器,我想这会导致循环引用,因为您尝试用自身包裹Parts_SpotlightWrapper形状。包装器只是单独的 Razor (cshtml) 代码段,充当给定形状的父级。

要实现您想要的行为,您应该创建一个单独的 .cshtml 文件(例如。MyWrapper.cshtml)包含必要的包装器HTML代码,并将其附加到现有部分,如下所示:

<Place Parts_SpotlightWrapper="Content:before;Wrapper=MyWrapper" />

包装器代码可能看起来像这样:

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

顺便说一句 - 试着看看它在Orchard.Widgets中是如何完成的。有两个包装器 Widget.Wrapper 和 Widget.ControlWrapper 包装 Widget 形状。这些声明不在 Placement.info 文件中(就像您所做的那样),而是在 Shapes.cs 形状定义中硬编码,尽管最终效果完全相同。Placement.info 技术是后来作为捷径引入的。

最新更新