2012-05-09 17 views
2

我們希望在特定頁面上啓用Sitecore 6中的緩存,但是,此頁面基於隨機值設置了一個圖像集,因此我們實際上需要緩存每個單獨呈現的頁面,以便我們可以保留此「隨機「圖像。Sitecore:在代碼後面的自定義參數緩存?

有什麼建議嗎?我想我們需要使用sublayout params,但是看不到我如何在後面的代碼中設置它來影響緩存行爲。

任何直接操作緩存條目的方法?

問候,

安迪

+0

只是爲了回答我自己的問題! 我發現這樣做的方式是通過以下代碼訪問UserControl的Sublayout: Sitecore.Web.UI.WebControls.Sublayout sub = this.Parent as Sitecore.Web.UI.WebControls.Sublayout; (sub!= null && sub.VaryByParm) { sub.Parameters =「Image =」+ num; } 只要你的SubLayout有VaryByParam設置,參數將被設置,然後緩存 - 完美的結果。 –

+0

我期待着完成同樣的事情。在這種情況下,我的Sublayout是一個UserControl。我可以從後面的代碼中訪問Sitecore.Web.UI.WebControls.Sublayout參數,就像您提到的那樣。但是,如果您在緩存的頁面背後的代碼中設置變量參數,那麼這將如何工作?第一次碰到頁面會不會緩存?然後每個後續請求永遠不會到達後面的代碼?在這種情況下,變化的參數永遠不會被設置? –

回答

2

創建Sitecore的,例如所定義的外sublayout MyComponent的。在代碼中,靜態綁定一個內部子圖層,例如。 MyComponentInner和前者的C#中,將VaryByParms值設置爲一個隨機數。