【发布时间】:2013-01-16 20:58:42
【问题描述】:
使用 SDL Tridion 2011 SP1 发布动态组件演示文稿时,我主要使用 REL 作为输出格式,但是我现在想要发布包含 ASP.NET 控制标记的 DCP。因此,我将模板的输出格式更改为 ASCX,并将 ASCX 组件演示文稿的存储配置为转到我的 Web 应用程序中的文件系统。我可以看到磁盘上的 ascx 文件,和预期的一样,我可以看到里面的控制标签。
如果我创建一个包含相同控件标记的 aspx 页面,则输出与我预期的一样,但是,当组件表示组装器执行 ASCX 组件表示时,而不是呈现来自控制标记的输出,它会出现空白。 DCP 中的纯文本会显示出来。
我需要的功能与 Tridion 动态组件链接控件非常相似,并且我已经在此架构中尝试过其中的一个,并且成功了。我什至将我的标签和 tridion 一个接一个地放在模板中。在这种情况下,我看到来自 tridion 标记的输出,但不是来自我自己的输出,即使引用连接在同一个 web.config 中。
所以我可以看到,可以让 Tridion 的组件表示汇编器执行一个 ASCX DCP 并成功呈现其子控件。在创作这样的控件时是否可能有要求以确保它可以以这种方式呈现?
更新:
DCP 已发布到我站点内的 ascx 文件中。出于测试目的,我现在在同一个 DCP 中发布 tridion 控件,因此磁盘上的输出如下所示:
<tridion:DynamicComponentLink PageURI="tcm:34-667-64" ComponentURI="tcm:34-876"
TemplateURI="tcm:34-864-32" LinkText="Some page" runat="server" />
<xxx:ComponentLinkQS runat="server" ComponentUri="tcm:34-945"
QueryString="item=876" Text="Some page" />
当 DCP 像这样发布并由 ComponentPresentationAssembler 执行时,第一个控件会产生预期的输出,而第二个不会。如果我将 <xxx:ComponentLinkQS/> 标记直接放在 ASPX 页面上,它会很好地呈现。
【问题讨论】:
-
您是否尝试过编写一个简单的“hello world”控件,以查看在不直接在页面上执行新链接控件时是否存在一些问题?
-
ASCX DCP 是否存储在 Web 应用程序中?
标签: tridion tridion-2011 tridion-content-delivery