缓存MVC控制器动作调用的方法的输出

本文关键字:方法 输出 调用 MVC 控制器 缓存 | 更新日期: 2023-09-27 18:11:01

我有一个MVC控制器动作方法,它有很多功能,包括调用私有方法。这个私有方法调用webapi服务,返回控制器动作的响应。我想缓存这个输出,以减少对Webapi的调用次数。

我认为,我们没有任何属性支持(如OutputCache上的动作)在一个控制器的普通方法。我只能想到使用MemoryCache,但请分享如果有最好的方法实现缓存在这里。

MVC控制器动作->私有方法->调用Webapi服务

缓存MVC控制器动作调用的方法的输出

您可以使用常规的System.Web.Cache,正如您在此SO Q&A:

中看到的那样

如何在MVC应用程序中缓存数据

注意,Cache["key"]返回对缓存数据的引用。因此,如果从缓存中恢复值并对其进行修改,则修改会自动反映在缓存中。(这只适用于类类型,而不适用于值类型,即结构或基本类型)。