.Net Core 2.1 Cache Tag Helper - PullRequest
       1

.Net Core 2.1 Cache Tag Helper

0 голосов
/ 30 сентября 2018

Не могу заставить его работать.Действительно простой сценарий ...

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

Запуск этого в VS2017 в IISExpress (то же самое поведение в 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

Ответы [ 2 ]

0 голосов
/ 25 августа 2019

Возможно, существует другая возможность, из-за которой cache помощник по тегам не работает.

У меня тоже была такая же проблема, хотя я правильно добавил помощников по тегам Microsoft, моя ошибка заключалась в том, что я использовал DateTime.Nowдля атрибута expires-on.см. ниже

<cache expires-on="DateTime.Now.AddDays(1)"> @DateTime.Now </cache>

теперь дата и время DateTime.Now не должны использоваться для cache помощника по тегам, поскольку при каждом обновлении страницы значение expires-on будет изменяться изаставить каркас заново добавить запись в кеш с новым expires-on.

Я изменил expires-on="DateTime.Now.AddDays(1)" на expires-after="@TimeSpan.FromMinutes(43200)" и все заработало.

0 голосов
/ 30 сентября 2018

Возможно, проблема в том, что вы не добавили помощников тегов.В качестве шага по устранению неполадок добавьте помощники тегов в представление с элементом <cache>.

_SomePartial.cshtml

@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

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

Если это решит проблему, вы, вероятно, захотите сделать помощниками тегов для всего каталогавместо одного файла.Сделайте это, переместив директиву addTagHelper в файл _ViewImports.cshtml.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...