首页 > 解决方案 > .Net Core 2.1 缓存标签助手

问题描述

似乎无法让它工作。很简单的场景...

<cache expires-after="@TimeSpan.FromMinutes(10)">
    @DateTime.Now
</cache>   

在 IISExpress 中的 VS2017 中运行它(在 IIS 10 中也有同样的行为)并在浏览器(Chrome)中点击刷新只是给了我当前时间?我正在使用.Net Core 2.1。我正在部分和视图组件中尝试它,它只是不缓存。

我不确定我做错了什么。

为了记录,我已经添加了..

services.AddMemoryCache();

到 Startup ConfigureServices 方法(尽管根据文档(https://docs.microsoft.com/en-us/aspnet/core/mvc/views/tag-helpers/built-in/cache-tag-helper?view= aspnetcore-2.1),我什至不需要这样做,因为它是自动添加的 - 它在底部这么说)。

这也是使用 Razor 页面

标签: c#asp.net-core

解决方案


问题可能是您没有添加标签助手。作为故障排除步骤,将标签助手添加到具有该<cache>元素的视图中。

_SomePartial.cshtml

@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

<cache expires-after="@TimeSpan.FromMinutes(10)">
    @DateTime.Now
</cache>

如果这样可以解决问题,您可能希望使标签助手可用于整个目录,而不仅仅是一个文件。通过将addTagHelper指令移动到_ViewImports.cshtml文件来做到这一点。


推荐阅读