Yazılım.
CevapSitesi.com Beta!
Çözüm Noktası
Facebook, Twitter, Google+ veya e-posta ile paylaşın.
| Sorular | Makaleler | Üyeler | Etiketler  | İletişim
Soru sormak ya da cevap vermek için;
giriş yapın veya üye olun.

Sosyal medya hesaplarınızla da giriş yapabilirsiniz.

Yazılım Soruları

0

Asp.net MVC outputcache layout problemi

[OutputCache(Duration = 6000, Location = System.Web.UI.OutputCacheLocation.Server)]

public ActionResult Index()
{
    return View();
}

isteğim sadece tanımladığım action içerisinden gelen bilgileri outputcache yapmasıdır. ancak bu şekilde kullandığımda hem index hemde layout çıktımı aynı anda cache yapıyor. ben sadece action'a attribute olarak eklediğim çıktıların cachlenmesini istiyorum.


2 Cevap

0
MVC yi pek bilmem ama VaryByCustom seçeneğinin yardımcı olması lazım.

Kodu şu şekilde düzenlersen:

[OutputCache(Duration = 6000, VaryByParam="*", VaryByCustom="IslemOzelligi" Location = System.Web.UI.OutputCacheLocation.Server)]

public ActionResult Index()
{
    return View();
}

Global.asax dosyana şunu eklersen:

public override string GetVaryByCustomString(HttpContext context, string arg)
{
    if (arg == "IslemOzelligi")
        return context.Request.Url.ToString();

    return base.GetVaryByCustomString(context, arg);
}

Duruma göre Cache özelliğinin çalışmasını sağlayabilirsin.

Örnekteki
return context.Request.Url.ToString();

satırı örnek olarak yazılmıştır. Burada context i kullanarak istediğin bir özellik, sayfa veya duruma göre bir string göndererek Cache işlemini gruplayabilirsin. Aynı string değerini döndürenler ayrıca arabelleklenir.


Cevaplayan: 26.10.17 18:44
cevapsitesi
102,034p 16ü
0
cevabınız için teşekkürler, 
index actionu üzerinde yazdığım cache attribute sinin sadece index viewini cachelemesini istiyorum. şuan 
  1. [OutputCache(Duration = 6000, Location = System.Web.UI.OutputCacheLocation.Server)] kodu hem index hemde
  2. layout 'u aynı anda cache'liyor. layout içerisinde kullanıcı girişi ve karşılama bölümleri olduğu için bu alanların kesinlikle cachenmesini istemiyorum


Cevaplayan: 26.10.17 20:29
kingserdar
9p 2ü