我在我的MVC控制器中有一个动作,我想根据传递的参数作为关键字缓存它的返回结果,这样下一次该动作将被调用时它将首先如果找不到,它将查找数据存储。将数据存储在高速缓存中30分钟MVC
public ActionResult GetSearchResult(string zipcode, int pageSize, int currentPage)
{
Cache[zipcode + page + currentpage] = somedata // but it should be cleared after 30 min
}
我该怎么做?我可以像上面那样将数据存储在缓存对象中,但是我想确保缓存的对象在30分钟后被清除。我看不到如何在全局或每个缓存对象的基础上配置生存期。
是的,我想过这个问题,但将它存储的数据按照不断变化的参数值的基础?因为邮编会不断变化? – BreakHead
你的意思是它会缓存不同的输入邮政编码的结果?是的,这就是['VaryByParam'](http://msdn.microsoft.com/zh-cn/library/system.web.mvc.outputcacheattribute.varybyparam.aspx)属性指定的 – Rup
@Rup击中了头部。您可以使用VaryByParam使用特定的全部参数或无参数进行缓存。在我的例子中,我说的是应该使用zipcode,pagesize和currentPage(即所有参数)来确定要缓存什么(并从缓存中提取) –