3

这类似于这个XSLT question,但最终是针对 DWT。

我们可以通过 C# TBB获取关键字的键。

ItemFields fields = new ItemFields(component.Metadata, component.Schema);
KeywordField keywordField = fields["state"] as KeywordField;

String stateValue = package.EvaluateExpression("Component.Metadata.state");

package.PushItem("statekey", package.CreateStringItem(ContentType.Text, keywordField.Value.Key));

在 DWT 中,我有时想要key组件中的选定关键字。

从包中添加和获取这些是正确的方法吗?

@@Component.Metadata.State@@让我获得价值。直接从 DWT 引用密钥会很好,但我没有看到任何建议 DWT 公开它。

4

2 回答 2

3

我怀疑为此你需要按照你的建议走 TBB 路线,或者甚至编写你自己的 DWT 函数来公开它。

您可以在此处找到创建 DWT 函数的示例:http ://www.tridiondeveloper.com/get-and-set-variables-in-dwts

于 2012-09-20T09:48:39.300 回答
3

作为约翰答案的另一种选择。对 Will 的“获取组件模板 Uris”采取类似的方法并编写一个 TBB 迭代类别的关键字并将它们写入具有所需输出值的包中怎么样?然后,您可以通过“双重评估”直接从 DWT 使用这些值,例如:

@@Keyword${Component.Metadata.state}Value@@
于 2012-09-20T12:02:24.603 回答