使用/ Razor为XPM模板使用多个RenderComponent演示文稿

时间:2013-02-14 14:14:12

标签: tridion tridion-2011 experience-manager

正如您可能已经知道的那样,我正在努力研究一些使用Razor的XPM模板。我遇到了另一个问题,这次是关于在模板中渲染组件以使它们成为siteEditable。

以下我不确定。我有一个名为“Title”的标题字段的组件,以及包含标题,描述和图像的组件的多值组件链接字段。我们现在称之为“链接的USP”。

目前,这是由名为“页面横幅”的模板呈现的,它只是在带有一些If循环的字段上进行迭代,以确定它的呈现方式,特别是对于标题。为了使XPM正常工作,该模板需要呈现“Linked USP”的组件表示。所以我们创建了一个名为“[XPM] USP ITEM”的模板。 - 此组件模板添加了“启用内容编辑TBB”。

现在,当我想使标题可编辑时,问题就出现了。听起来很直率,不是吗?不是真的 - 因为当父模板添加了“启用内容编辑”TBB时,它会向所有可编辑字段添加<span>个标签,但在此模板中调用的模板也会有<span> -tags,有效地使html膨胀,并且由于重复<span> s而无法编辑RenderComponentPresentation中的字段。

一些代码可以让您充满乐趣并说明我的问题:

<h1>@RenderComponentField("Title", 0)</h1>

@Foreach(var linkedUSP in Fields.USPS){
     @RenderComponentPresentation("linkedUSP.ID", "tcm:10-1076-32")
}

此模板添加了启用内容编辑TBB。

现在,对于上面提到的RCP,在其[XPM]模板中:

<div class="title">@RenderComponentField("Title", 0)</div>
    <p>@RenderComponentField("Description", 0)</p>
    <tcdl:ComponentField name="img">
         <img src="@img" alt="img.MetaData.alt">
    </tcdl:ComponentField>

这一个ALSO添加了“启用内容编辑”TBB。在前端会发生这种情况:

<div class="title"><span><span>Men</span></span></div>

因为父模板还会向字段添加跨度。

所以我的问题:我该如何解决这个问题?上面提到的Title字段必须在父模板中,但我不能为它创建一个特殊的模板,因为它不是组件链接。我无法从我的RCP模板中获取TBB,因为它不会以这种方式编辑。有意思吗?

我不能以某种方式禁用模板构建器内的跨度吗?

0 个答案:

没有答案