【问题标题】:Tridion User Interface 2012 - Can't find Razor helpers when creating pages/inserting contentTridion 用户界面 2012 - 创建页面/插入内容时找不到 Razor 助手
【发布时间】:2012-07-31 07:24:28
【问题描述】:

我正在使用 Tridion 2011 SP1 和 Razor 模板,但在通过用户界面 2012 创建页面和插入内容时遇到问题。当我尝试这样做时,我的 Razor 助手、命名空间和程序集出现在 Tridion.ContentManager 中.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 调解器的以下内容:

<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>

关于为什么 UI 不包含帮助程序和命名空间,除非在 Razor 模板中直接引用,有什么想法吗?

提前致谢。

【问题讨论】:

    标签: razor tridion tridion-2011 razor-mediator


    【解决方案1】:

    会话预览机制的一些背景

    新的 UI 为其会话预览机制使用了一种特殊类型的发布者,该机制优化了发布过程,以获得人们在这种环境中所期望的“近乎实时”的行为。优化的发布者通过跳过某些步骤来实现这一点,其中之一是减少解析过程(因此发布的项目更少)并且不调用自定义解析器。

    关于你的问题

    创建新页面时是否调用了 Razor 模板?

    【讨论】:

    • 感谢Puf的解释。似乎调用了 Razor 模板,它只是找不到其中使用的帮助程序和程序集,因为它们没有被包含在内。看起来我可能必须在每个剃须刀模板中引用程序集和助手,而不是在 Tridion 配置文件中。谢谢。
    • 好的,我也是这样准备你的初始报告的。我真的不明白这是怎么回事,因为(AFAIK)这些导入是由 Razor 调解器本身处理的。既然被调用了,为什么它不处理导入?诡异的。 :-/
    猜你喜欢
    • 2012-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-09
    • 1970-01-01
    • 2020-05-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多