2014-09-26 24 views
3

有沒有辦法讓一個ControllerRendering Sitecore緩存在靜態佈局中聲明?然而我如何啓用緩存的Sitecore控制器Rendering

<sc:Sublayout ID="slMyControl" path="~/path/to/my/control.ascx" VaryByParm="true" Cachable="true" runat="server" />

,當我使用的HTML幫助有控制器上的方法沒有重載接受緩存參數:在Web表單,你可以這樣定義一個渲染的緩存設置?

@Html.Sitecore().Controller("NAMESPACE", "ACTION")

我跑Sitecore的7.2

回答

11

如果你想靜態綁定控制器渲染,你應該對HTML輔助使用Rendering()方法。在那裏,你可以用參數定義緩存:

@Html.Sitecore().Rendering("<your rendering definition item id>", new { Cacheable = true, CacheKey = "my_rendering", Cache_VaryByData = true }) 

參數應具有相同的名稱作爲sublayout使用,具有Cache_前綴。

+2

太棒了,這似乎很好地完成了這項工作!你是否必須聲明內聯的緩存設置,因爲它似乎沒有拾取渲染項目上聲明的任何緩存設置? – 2014-09-28 23:05:55

+1

@RobEarlam就我所知,渲染項目上的緩存設置僅用於動態綁定。 – 2014-09-29 06:07:00

0

這個工程,我試着用控制器渲染。您可以通過將其附加到工作進程來驗證它,並且在刷新同一頁面時不應該擊中斷點。它也將取決於用於緩存的參數。

+0

歡迎來到StackOverflow。這是一個專業的問答網站。請訪問[回答] – afzalex 2014-09-30 21:32:46