Glass Mapper缓存价值?

时间:2015-10-05 19:51:59

标签: sitecore sitecore8 glass-mapper sitecore-mvc

使用Sitecore 8.0u3和Glass-Mapper 3.5.3

我遇到了一个无法解决的有趣情况。我在某些控制器渲染上看到,简单文本字段(单行,多行)的某些值似乎被缓存。其他控制器渲染似乎没有此问题。

我尝试写出表格的介绍文本,如下所示:

<div class="intro">@Editable(m => Model.ContextItem.Intro_Text)</div>
<div>RAW: @Model.ContextItem.Intro_Text</div>

请注意,我添加了第二行用于故障排除。

在这种情况下,结果是:

  

填写表格以联系uss。

     

RAW:填写表格与uss联系。

我更新Sitecore中的文本以删除额外的's',保存并发布。我刷新了我的页面,我看到了:

  

填写表格以联系uss。

     

RAW:填写表格与我们联系。

因此,不使用Editable的部分可以正常工作,但Editable版本会继续显示“旧”值。

我查看了很多设置,包括渲染的可缓存性,网站的可缓存性,Caching.Enabled设置,Caching.HTMLLifetime设置,IIS缓存,发布限制,但似乎没有影响这个问题。

其他地方有什么想法来寻找问题的根源吗?

3 个答案:

答案 0 :(得分:6)

我认为您需要使用语法<div class="intro">@Editable(m => m.ContextItem.Intro_Text)</div>而不是<div class="intro">@Editable(m => Model.ContextItem.Intro_Text)</div>

答案 1 :(得分:1)

我刚才谈到这个问题。将语法更改为@Editable(Model =&gt; Model.ContextItem.Intro_Text)

答案 2 :(得分:0)

@Editable()查看HtmlString,并且最有可能从HtmlCache中显示它。我也看到了这个问题,并且在构建过程中我必须重新发布所有内容以清除缓存,特别是当我将更改数据模板时。

您可以在开发环境中尝试一些事情并缩小问题范围。

  1. 进行更改后,请清除/sitecore/admin/cache.aspx中的HTML缓存并再次检查该页面。

  2. 尝试对网站进行增量发布,因为它会清除HTML缓存。

  3. 尝试重新发布网站。

  4. 此外,在

    下禁用网站的输出缓存