我正在使用Tridion 2011 SP1和Razor模板,但在通过用户界面2012创建页面和插入内容时遇到问题。当我尝试这样做时,Tridion.ContentManager.config文件中列出的Razor助手、命名空间和程序集似乎没有被包括在内。
我试着直接在razor模板中添加对辅助对象的引用,一切都很好,但我不想在每个razor模版中都这样做。
当我尝试通过UI创建页面时,我会收到以下Razor错误:
TemplateCompileException: CS0103: The name 'GetBreadcrumbStatus' does not exist
in the current context Line 64 Column 21: if(GetBreadcrumbStatus())
我的Tridion.ContentManager.config文件包含Razor Mediator的以下内容:
<razor.mediator cacheTime="600" extractBinaries="true">
<namespaces>
<add namespace="Tridion.Extensions.Mediators.Razor.Models" />
<add namespace="System.Linq" />
</namespaces>
<imports>
<add import="C:Program Files (x86)TridionRazor MediatorHelpersGeneralHelper.cshtml" />
</imports>
</razor.mediator>
关于为什么UI不包括助手和名称空间,除非在Razor模板中直接引用它们,有什么想法吗?
提前谢谢。
会话预览机制的一些背景
新的UI在其会话预览机制中使用了一种特殊类型的发布者,该机制优化了发布过程,以获得人们在这种环境中所期望的"近乎实时"的行为。优化后的发布者通过跳过某些步骤来实现这一点,其中之一是减少解析过程(从而减少发布的项目),而不调用自定义解析器。
关于你的问题
创建新页面时是否调用了Razor模板?