我在Tridion 2011中有一个页面模板,其中Razor代码基于RenderComponentPresentation()打印信息,作为页面中的第一件事.之前没有其他标记,因为组件而不是页面包含初始标记.除非我在发布的输出中的第一个RenderComponentPresentation之前放置至少一个字符,否则模板拒绝呈现任何演示文稿.
所以,例如,如果这就是布局TBB中的所有内容(这在我的实际代码中,tcms当然是真实的):
<
@RenderComponentPresentation("tcm:mytcm","tcm:myothertcm")
Run Code Online (Sandbox Code Playgroud)
但事实并非如此
@RenderComponentPresentation("tcm:mytcm","tcm:myothertcm")
Run Code Online (Sandbox Code Playgroud)
第一个打印前面带有"<"的组件的内容,而第二个打不出任何内容.我不希望在页面模板的开头直接有任何标记,我希望第一件事就是组件.可能吗?
我正在尝试使用Razor模板生成.aspx页面作为输出.我没有运气在文档中查看如何执行此操作.页面和名称空间声明打破了模板:
<%@ Page Language="C#" Title="@Page.Metadata.browser_title" %>
<%@ Import Namespace="System.Xml" %>
Run Code Online (Sandbox Code Playgroud)
这些导致此错误:
TemplateCompileException:CS1501:方法'Write'没有重载需要0参数第27行第1列:Write();
我认为这是因为使用C#语法的Razor模板会导致两者冲突,因为上面的声明使用"@".有没有办法让它们一起工作,因此Razor模板可以在模板运行后在渲染产品中使用C#生成输出?上面的示例还显示了如何从模板中呈现"标题"的值.
在Tridion中,类似于架构或元数据架构中的字段可以是文本,嵌入式架构还是组件链接...是否有一种方法可以让字段成为项目选择,如组件链接,但选择不同的类型Tridion对象而不是组件?
我希望用户能够通过界面选择复合组件模板或页面对象,而不是在文本字段中键入tcm并读取该值.
这可能吗?