我在Sitecore的MVC实现中专门针对行中的列名使用DynamicPlaceholders。例如,我可能在页面上有3个50/50渲染,每个渲染都有一个列占位符和一个二列占位符。我正在使用的动态占位符代码非常适合创建新页面。但现在我需要将现有页面从不同的节点迁移到我的新内容树中。
我创建了一个新的RenderingDefinition项目,如下所示:
RenderingDefinition ren = new RenderingDefinition();
ren.Placeholder = "content/50-50";
ren.Datasource = [Datasource GUID];
ren.ItemID = [Rendering GUID];
device.AddRendering(ren);
然后我需要为该渲染的每一列添加一些内容项,以及我遇到问题的地方。不知何故,Sitecore使用我创建的上述渲染存储GUID。如果您在PageEditor模式下检查占位符,您可以看到" referenceId"在与此对应的标记中。但我无法弄清楚它的存储位置,所以我可以将它传递给下面的代码:
RenderingDefinition col = new RenderingDefinition();
col.Placeholder = "content/50-50/column-one_[50/50 rendering placeholder guid]";
col.Datasource = [Datasource GUID];
col.ItemID = [Rendering GUID];
device.AddRendering(col);
它绝对不是RenderingDefintion的属性,也不是渲染ID。
答案 0 :(得分:1)
Guids不是单独存储的,而是作为占位符键的一部分存储,可以通过引用rendering.Placeholder
的DefaultPlaceholderKey属性来引用它。 需要了解的所有内容的好文章