如何在多个模板使用的Tridion组件模板中转义$ {}?

Tri*_*Nut 8 tridion tridion-2011

我遇到了一个我已经知道值的情况${test},在我的组件模板中呈现这个值就出来了,当另一个模板调用此组件时,问题就出来了@@RenderComponentPresentation(Component.ID, MyFirstTemplate)@@,此时使用的模板${test}被评估并且因为有组件或包中没有这样的项目,它评估为空.

  • 我有分量模板中的一个,上面写着一个组件字段的值(包含:${test})

    • 这个模板渲染得很好,我回来了"$ {test}"
  • 现在我有调用的组件模板二 @@RenderComponentPresentation(Component.ID, ComponentTemplateOne.ID)@@

    • 这是${test}现在被评估而不是保留的地方,因此它从${test}"" 变为"",因为它没有找到具有该名称的变量或组件字段名称.
  • 组件模板然后以相同的方式由组件模板三调用 @@RenderComponentPresentation(Component2.ID, ComponentTemplateTwo.ID)@@

    • 由于${test}已经在组件模板二中进行了评估和丢失,因此我不再${test}使用"".

我试过了:

  • @@RenderComponentField('myField', 0, False, False)@@
  • @@RenderComponentField('myField', 0, True, False)@@
  • @@RenderComponentField('myField', 0, False, True)@@

没运气.

以下是我的工作,它似乎工作:

  • 将"\"放在打开和关闭的大括号前面 $\{test\}
  • 我需要确保在最后一个模板(页面或组件)执行后删除"\".
  • 我现在有一个C#TBB,它接受"$ {test}"并执行以下操作:
    • 转换为初始模板中的${test}to $\{test\}和页面模板上的C#TBB,然后将其返回到初始值${test}.

有没有办法防止这种情况发生或避免做我正在做的事情使这项工作?

vik*_*mar 4

您是否尝试过此链接,您应该可以通过此链接进行此操作

@@"$" + "{" + "test" + "}"@@
Run Code Online (Sandbox Code Playgroud)