【发布时间】:2019-03-20 20:53:14
【问题描述】:
我正在构建一个网络应用程序,它从数据库中选择大量信息并将其返回。我想存储从数据库返回表的方法的返回值 15 分钟,但使用 OutputCache 过滤器不起作用:
[OutputCache(duration=900)]
private DataTable[] GetInfoTables() {...}
该方法确实有效,只是找到,但是当我向其中一个表添加任何内容时(在首次登录站点并查看它们之后)它会立即刷新,我希望它缓存 15 分钟。
我无法缓存public ActionResult Index(),因为它会检查Sessions 的值。
谢谢
【问题讨论】:
-
您查看过OutputCache 的文档吗?它并不是说它可以缓存任何方法的结果。您可能应该查看 Cache 对象。
-
根据this 文章它确实适用于字符串方法
-
不,它没有这么说。控制器上的操作方法与任何常规方法不同。框架调用action方法,并且可以在调用之前检查是否有缓存内容。如果您正在调用随机方法,那么您有责任实现缓存处理。它们可以帮助您找到一个存储要缓存的对象的地方,但是正确连接它取决于您。更仔细地重新阅读所有这些文档。
-
你还需要帮助吗??????
标签: c# asp.net asp.net-mvc caching