我正在使用Tridion 2011 SP1和Razor模板但是在通过用户界面2012创建页面和插入内容时遇到了问题。当我尝试使用Tridion.ContentManager中列出的Razor助手,命名空间和程序集时出现.config文件没有包含在内。
我尝试直接在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)\Tridion\Razor Mediator\Helpers\GeneralHelper.cshtml" />
</imports>
</razor.mediator>
除非直接在Razor模板中引用,否则有关UI为何不包含帮助程序和名称空间的任何想法?
提前致谢。
答案 0 :(得分:9)
新的UI为其会话预览机制使用特殊类型的发布者,该机制优化了发布过程,以获得人们在这样的环境中所期望的“近实时”行为。优化的发布者通过跳过某些步骤来实现这一点,其中一个步骤是减少解析过程(因此发布的项目更少),而不是调用自定义解析器。
创建新页面时,您的Razor模板是否完全被调用?