asp.net mvc3 输出缓存


在mvc开发中本人经常会遇到这样的问题,在action中返回列表的时候经常会遇到有缓存,但是那都是浏览器的自带的缓存,没有在mvc里面真正使用过,我们经常在action里面用

Response.Cache.SetCacheability(HttpCacheability.NoCache);   //清除缓存

或者是在页面添加清除缓存标签

this.ControllerContext.HttpContext.Response.AddHeader("cache-control", "no-cache"); //清除缓存

来清除缓存,但是为了优化系统必须有,为了提升,今天看了下,首先看了下大神老赵的博客关于缓存的方案,大牛就是大牛,非常经典http://www.cnblogs.com/JeffreyZhao/archive/2009/09/17/aspnet-mvc-fragment-cache-1.html

还有一种就是mvc的输出缓存OutputCacheAttribute  相当简单,这个跟asp.net中@ OutputCache 属性是一样的,唯一不受 OutputCacheAttribute 支持的 @ OutputCache 属性是 VaryByControl

 [OutputCache(Duration = 10)]
        public ActionResult Index()
        {
            return View(DateTime.Now);
        }

 但是在项目中一般建议不要这么写,因为这样如果控制器多的话比较难以控制,我觉得通过来规定整个控制器也是可取的

[OutputCache(Duration = 10)]
    public class HomeController : Controller
    {
        //
        // GET: /Default1/
        public ActionResult Index()
        {
            return View(DateTime.Now);
        }

    }

 但是网上还是建议通过xml形式来规定,这样更容易的全局控制

 [OutputCache(CacheProfile = "objectboy")]
        public ActionResult Index()

 Web.Config格式如下:

<system.web>
  <caching>
    <outputCacheSettings>
      <outputCacheProfiles>
        <add name="objectboy" duration="10" varyByParam="*" />
      </outputCacheProfiles>
    </outputCacheSettings>
  </caching>
</system.web>

 几种方式都将在页面缓存10s,  还有什么好的方式请指教,


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM