将响应缓存保存到 Net 5 中的服务器

Saving the response cache to the server in Net 5

与Net MVC一样,我想将响应缓存保存到服务器(称为o​​utputcache),但Net Core或Net 5中没有此功能。我找不到替代方法。提前谢谢你。

您可以使用 WebEssentials.AspNetCore.OutputCaching nuget 来实现您的要求。

按照以下步骤操作:

1.Add中间件:

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.Add 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 选项,还包含其他选项,例如 VaryByHeaderVaryByParam 等等...

更多详情可以参考github repo for WebEssentials.AspNetCore.OutputCaching