Caching 在内存中缓存视图

Caching 在内存中缓存视图,caching,asp.net-core,asp.net-core-mvc,Caching,Asp.net Core,Asp.net Core Mvc,是否可以在ASP.NET Core中缓存整个视图 可以使用IMemoryCache在ASP.NET核心中缓存数据,但是我看不到任何缓存已编译视图的方法,因此不会在每次请求时重新编译它们 我最初尝试在控制器中缓存View()方法返回的ViewResult对象,但后来发现这些对象不是实际视图 为了澄清这一点,我希望能够缓存动态视图,这样它们的代码就不会在每次请求时都被编译,只有在超过指定的超时时间后才会编译。您可以通过为Action/Controller指定OutputCache属性来实现这一点 如

是否可以在ASP.NET Core中缓存整个视图

可以使用
IMemoryCache
在ASP.NET核心中缓存数据,但是我看不到任何缓存已编译视图的方法,因此不会在每次请求时重新编译它们

我最初尝试在控制器中缓存
View()
方法返回的
ViewResult
对象,但后来发现这些对象不是实际视图


为了澄清这一点,我希望能够缓存动态视图,这样它们的代码就不会在每次请求时都被编译,只有在超过指定的超时时间后才会编译。

您可以通过为Action/Controller指定
OutputCache
属性来实现这一点

如上所述:

OutputCacheAttribute

  • 输出缓存允许您将操作方法的输出存储在 Web服务器上的内存。例如,如果action方法呈现 视图时,视图页将被缓存。然后,该缓存页面可供应用程序用于后续请求。输出缓存可以节省应用程序重新创建操作方法结果所需的时间和资源

  • 在ASP.NET MVC中,可以使用OutputCacheAttribute属性标记要缓存其输出的操作方法。如果你标记 具有OutputCacheAttribute属性的控制器,输出 将缓存控制器中所有操作方法的

属性:

:获取或设置一个值,该值指示是否存储缓存

:获取或设置缓存持续时间,以秒为单位

有关更多属性,请参阅

请也看看这个


更新

对于ASP.NET核心,还有一个名为响应缓存的属性

响应缓存

  • 响应缓存将缓存相关的头添加到响应中。这些头指定您希望客户端、代理和中间件如何缓存响应。响应缓存可以减少客户端或代理向web服务器发出的请求数。响应缓存还可以减少web服务器为生成响应而执行的工作量

与输出缓存不同,它不在服务器上存储HTTP响应,只在响应中添加“缓存控制”头。

您听说过
[outputcacheattribute]
()请注意,该框架称为ASP.NET Core 1.x,而不是ASP.NET 5。为了避免混淆,它在大约18个月前被重新命名