2012-05-03 13 views
6

मैं एएसपी.नेट एमवीसी 3 का उपयोग कर रहा हूं।
मैंने नियंत्रक विधि पर आउटपुट कैशिंग का उपयोग किया है।आउटपुट कैशिंग में गतिशील अवधि मान का उपयोग कैसे करें?

[OutputCache(Duration = 3660, VaryByParam = "none")] 
    public ActionResult Index() 
    { 
     some code; 
     return View(); 
    } 

मैं आउटपुट कैशिंग में कुछ स्थैतिक चर या कुछ और का उपयोग करके गतिशील अवधि रखना चाहता हूं।

मैं यह कैसे कर सकता हूं?

उत्तर

10

मैं OutputCache विशेषता से विरासत और वहाँ सेट Duration होगा:

public static class CacheConfig 
{ 
    public static int Duration = 36600; 
} 

public class MyOutputCacheAttribute : OutputCacheAttribute 
{ 
    public MyOutputCacheAttribute() 
    { 
     this.Duration = CacheConfig.Duration; 
    } 
} 

[MyOutputCache(VaryByParam = "none")] 
public ActionResult Index() 
{ 
    return View(); 
} 

तो फिर तुम Duration गतिशील रूप से परिवर्तित कर सकते हैं और दुनिया भर में CacheConfig.Duration

गर्त और आप अभी भी हर पर वैश्विक सेटिंग को ओवरराइड कर सकते हैं यदि आप चाहें तो कार्रवाई:

[MyOutputCache(Duration = 100, VaryByParam = "none")] 
public ActionResult OtherAction() 
{ 
    return View(); 
} 
संबंधित मुद्दे