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

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

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

查看OutputCache属性的VaryByParam属性。

[OutputCache(Duration=int.MaxValue, VaryByParam="id")] public ActionResult Details(int id) { } 

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

编辑:

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