2

我在访问页面模板 DWT 中的包变量时遇到问题。

我有一个带有 4 个 TBB 的复合页面模板,如下所示:

1)常量 TBB - 这个 TBB 读取组件(嵌入式多值组件)的所有值作为键值对并将它们推送到包中。例如:

Item item = this._package.CreateStringItem(contentType, "test");
this._package.PushItem("key", item);

2)页面模板的C# DLL - 这包含页面模板的逻辑

3)页面模板的DWT——所有的包变量都在这里输出。

4)默认完成动作

我面临的问题如下:

在我的 DWT 中,我想将组件模板的元数据与常量 TBB 中设置的包变量进行比较。

我使用的语法是:

<!-- TemplateBeginIf cond="ComponentTemplate.Metadata.section_name = key" -->

其中 key 是在常量 TBB 中设置的包名称,其值为“test”

但不知何故,这个包变量“key”给出的值为 0 而不是测试。

有人可以让我知道我到底哪里出错了。

4

2 回答 2

6

您应该通过替换来指定要添加到包中的项目类型:

Item item = this._package.CreateStringItem(contentType, "test");

Item item = this._package.CreateStringItem(contentType.Text, "test");

您还应该使用以下方法确认变量已正确传递给 DWT

@@test@@

条件之外。这将显示您要与之比较的值。

于 2015-08-27T17:28:21.737 回答
2

请检查以下内容。

  1. 检查一个包中是否有多个具有“Key”名称的变量。
  2. 检查您是否在包装中的正确位置进行验证。

包装图片

于 2012-10-10T07:56:04.137 回答