与在 Net MVC 中一样,我想将响应缓存保存到服务器(称为 outputcache),但在 Net Core 或 Net 5 中没有这样的功能。我找不到替代方法。先感谢您。
问问题
55 次
1 回答
1
您可以使用WebEssentials.AspNetCore.OutputCaching nuget 来满足您的要求。
请按照以下步骤操作:
1.添加中间件:
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddOutputCaching();
//other middleware...
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseOutputCaching();
//other middleware...
}
}
2.OutputCache
为动作添加属性:
[OutputCache(Duration = 600)]
public IActionResult Index()
{ ... }
用于测试的示例代码:
控制器:
[OutputCache(Duration = 600)]
public IActionResult Index()
{
return View(DateTime.Now);
}
看法:
@model DateTime
Time of request: @Model.ToString()
尝试请求页面并注意日期和时间保持不变,即使在重新加载页面时也是如此,直到缓存过期。
OutputCache 不仅包含Duration
选项,还包含其他选项,例如VaryByHeader
,VaryByParam
等等...
更多细节可以参考github repo for WebEssentials.AspNetCore.OutputCaching
于 2021-11-30T08:13:32.407 回答