Sitecore 7 ile, sorgu dizelerimin çoğu özel yol haline geldi. Örneğin: Sonuç olarakMVC İşlemleri için URL'ye Göre Önbellek mi?
OLD: /calendar?year=2013&month=7&day=14
NEW: /calendar/2013/7/14
, ben daha çok sorgu dizesi tarafından yerine, URL ile benim render HTML önbellek değişen ihtiyacı içinde buluyorum. Sitecore, MVC renderleme için URL ile önbellek değiştirmenin uygun bir yolunu sunuyor mu?
tüm MVC kaplamalar kendi önbellek anahtarı şu sınıfında üretilir mvc.renderRendering boru hattı, geçmesine bulduk
GÜNCELLEME: geçersiz kılarak
Sitecore.Mvc.Pipelines.Response.RenderRendering.GenerateCacheKey
Bu sınıfın GenerateKey(Rendering rendering, RenderRenderingArgs args)
yöntemini kullanarak, site.Request.FilePath
kullanarak ham URL'yi başarıyla ekleyebiliyorum. Şu anda karşılaştığım sorun, bu önbellek ayarını oluşturma işleminden nasıl çıkartacağım? Sanırım, render üzerinde yeni bir "VaryByUrl" önbellekleme seçeneği oluşturmam gerekiyor, ama emin değilim. 2
GÜNCELLEME Aşağıdaki kodu kullanarak render tanımı öğenin kapalı özel bir alan okuyabiliyordu. O inşaat, ancak yalnızca Ayrıca VaryByUrl için ancak WebForms mimarisinde bir ihtiyaç vardı
protected override string GenerateKey(Rendering rendering, RenderRenderingArgs args)
{
var key = base.GenerateKey(rendering, args);
if (rendering.RenderingItem.InnerItem.Fields["VaryByUrl"] != null)
{
var varyByUrl = ((CheckboxField)rendering.RenderingItem.InnerItem.Fields["VaryByUrl"]).Checked;
if (varyByUrl) key += GetUrlPart(rendering);
}
return key;
}