我在我的MVC控制器中有一个动作,我想根据传递的参数作为键来缓存它的返回结果,这样下次调用这个动作时,如果没有找到它将首先查看缓存查看数据存储。
public ActionResult GetSearchResult(string zipcode, int pageSize, int currentPage)
{
Cache[zipcode + page + currentpage] = somedata // but it should be cleared after 30 min
}
我该怎么做?我可以将数据存储在缓存对象中,如上所述,但我想确保在30分钟后清除缓存的对象。我无法看到如何在全局或每个缓存对象的基础上配置生命周期。
答案 0 :(得分:2)
您可以使用Cache.Insert()
方法。
Cache.Insert("key", myTimeSensitiveData, null,
DateTime.Now.AddMinutes(30), TimeSpan.Zero);
答案 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
}