在ASP.NET MVC Core 2.1中,响应缓存可能未生效的原因有很多,以下是一些常见的解决方法:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
// 启用响应缓存
services.AddResponseCaching();
// 配置缓存存储方式
services.AddMemoryCache();
}
[ResponseCache(Duration = 3600, Location = ResponseCacheLocation.Any)]
public IActionResult Index()
{
// 控制器逻辑代码
}
public IActionResult Index()
{
var cacheKey = "MyCacheKey";
var cachedData = _memoryCache.Get(cacheKey);
if (cachedData == null)
{
// 如果缓存数据不存在,则从数据库或其他数据源获取数据
cachedData = GetDataFromDatabase();
// 存储数据到缓存
_memoryCache.Set(cacheKey, cachedData, TimeSpan.FromMinutes(60));
}
return View(cachedData);
}
请注意,上述代码中的"_memoryCache"是对IMemoryCache的依赖注入,可以在构造函数中注入。如果需要使用分布式缓存,请使用IDistributedCache。
如果上述解决方法都没有解决问题,您还可以尝试以下操作:
希望以上解决方法能够帮助您解决问题。如果问题仍然存在,请提供更多的代码和详细的错误信息,以便我们能够更好地帮助您。
上一篇:ASP.NET MVC Core - 在业务层中使用ViewModel并实现数据注释
下一篇:ASP.NET MVC Core 3.0 - 为什么从请求体中的API返回总是!ModelState.IsValid?