将数据存储在缓存中30分钟MVC

时间:2012-04-30 14:57:15

标签: asp.net-mvc asp.net-mvc-3

我在我的MVC控制器中有一个动作,我想根据传递的参数作为键来缓存它的返回结果,这样下次调用这个动作时,如果没有找到它将首先查看缓存查看数据存储。

 public ActionResult GetSearchResult(string zipcode, int pageSize, int currentPage)
 {
     Cache[zipcode + page + currentpage] = somedata // but it should be cleared after 30 min
 }

我该怎么做?我可以将数据存储在缓存对象中,如上所述,但我想确保在30分钟后清除缓存的对象。我无法看到如何在全局或每个缓存对象的基础上配置生命周期。

2 个答案:

答案 0 :(得分:2)

您可以使用Cache.Insert()方法。

Cache.Insert("key", myTimeSensitiveData, null, 
  DateTime.Now.AddMinutes(30), TimeSpan.Zero);

有关详细信息,请参阅ASP.NET Caching: Techniques and Best Practices

答案 1 :(得分:2)

我强烈建议您在操作中使用outputcache过滤器,而不是自己手动执行

     [OutputCache(Duration=1800, VaryByParam="*")]
     public ActionResult GetSearchResult(string zipcode, int pageSize, int currentPage)
     {
  //       Cache[zipcode + page + currentpage] = somedata // but it should be cleared after 30 min
     }