将响应缓存保存到 Net 5 中的服务器
Saving the response cache to the server in Net 5
与Net MVC一样,我想将响应缓存保存到服务器(称为outputcache),但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
选项,还包含其他选项,例如 VaryByHeader
、VaryByParam
等等...
更多详情可以参考github repo for WebEssentials.AspNetCore.OutputCaching
与Net MVC一样,我想将响应缓存保存到服务器(称为outputcache),但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
选项,还包含其他选项,例如 VaryByHeader
、VaryByParam
等等...
更多详情可以参考github repo for WebEssentials.AspNetCore.OutputCaching