Я пытался понять, как реализовать мою логику для кэширования нескольких страниц для отображения одним методом действия, он отлично работает с начальной страницей, однако, когда я пытаюсь получить последующие страницы, он не извлекает данные из сервер, так как очевидно, что он получает данные из кэша с тем же ключом и не попадает на сервер API бэкэнда до истечения времени истечения. Он отображает одну и ту же страницу независимо от нажатия на разных страницах. Код следует: -
private readonly IMemoryCache _cache;
private readonly WebAPIService _service;
private static readonly string _slugKey = "slug";
private static readonly TimeSpan _defaultCacheDuration = TimeSpan.FromMinutes(5);
public CachePolicy(IMemoryCache cache, WebAPIService service)
{
_cache = cache;
_service = service;
}
public async Task<DisplayDto> GetPostBySlug(string slug)
{
return await _cache.GetOrCreateAsync(_slugKey, async entry =>
{
entry.SlidingExpiration = _defaultCacheDuration;
return await _service.GetPostBySlug(slug);
});
}