Episerver 中的嵌套块类型

Nested block types in Episerver

我准备在 Episerver 中构建一个用于创建内容表的块。

我希望这个块有一个 ContentArea,它又将只包含 TableRowBlock 类型的块(这样我就可以有任意数量的行)。

如果我创建一个名为 TableBlock 的块类型和另一个名为 TableRowBlock 的块类型,当编辑器添加新块时,它们都将可见。

因为 TableRowBlock 只在 TableBlock 中有意义,我想隐藏它,这样它只有在向 ContentArea 属性 添加块时才可见TableBlock.

我该怎么做?

恐怕不支持开箱即用的问题。

但是,您可以:

  1. TableBlock 添加 [AllowedContentTypes] 属性到 ContentArea 属性,并指定 TableRowBlock 类型为允许的类型。这样,在内容区域编辑器中单击 "Add new block" 时,编辑器就不必 select 阻止类型。
  2. 通过创建您自己的 IContentTypeAdvisor 自定义在创建新内容时建议的内容类型,当编辑 TableBlock 时会建议 TableRowBlock

[ServiceConfiguration(typeof(IContentTypeAdvisor))] public class ContentTypeAdvisor : IContentTypeAdvisor { public IEnumerable<int> GetSuggestions(IContent parent, bool contentFolder, IEnumerable<string> requestedTypes) { // Suggest relevant content types } }

完整示例 available here.