你可以根据控制器动作的参数在asp.net-mvc中使用输出缓存

leo*_*ora 3 c# asp.net-mvc caching outputcache

我想使用输出缓存来避免使用相同的静态查询一遍又一遍地访问我的数据库,但我的控制器具有唯一定义帖子的参数.

我如何考虑我的参数并仍然支持asp.net-mvc中的输出缓存?

Khe*_*pri 7

查看OutputCache属性的VaryByParam属性.

[OutputCache(Duration=int.MaxValue, VaryByParam="id")]
public ActionResult Details(int id)
{
}
Run Code Online (Sandbox Code Playgroud)

对于每个唯一的id值,将创建一个唯一的缓存实例.

编辑:

如果您的缓存需求超出了简单的VaryByParam场景,那么请查看VaryByCustom.这将允许您根据需要设置方案(登录与未登录用户的缓存版本等)