Em dùng netcore 6. Em muốn lưu cache trong netcore sử dụng thư viện Microsoft.Extensions.Caching.Memory có sẵn.
Vấn đề e gặp phải là: Đoạn cache trên chỉ lưu đoạn 1 lần và gọi lại 1 lần, sau khi e f5 thì nó không get được giá trị cache đã lưu nên mỗi lần f5 thì lại ra 1 giá trị thời gian khác nhau (DateTime.Now).
Có phải do ở ngoài view component e khai báo:
IMemoryCache _memoryCache = new MemoryCache(new MemoryCacheOptions());
Nên mỗi lần f5 nó lại khởi tạo lại nên không get được cache đã lưu không ạ?
Anh chị xem hộ e e fix kiểu gì giờ ạ?
@using Microsoft.Extensions.Caching.Memory
@{
IMemoryCache _memoryCache = new MemoryCache(new MemoryCacheOptions());
var cacheExpiryOptions = new MemoryCacheEntryOptions()
.SetAbsoluteExpiration(TimeSpan.FromSeconds(50));
DateTime cacheEntry;
<b>@_memoryCache.TryGetValue("hanoi12345", out cacheEntry)</b>
if (!_memoryCache.TryGetValue("hanoi12345", out cacheEntry))
{
cacheEntry = DateTime.Now;
// Set cache options.
// Save data in cache.
_memoryCache.Set("hanoi12345", cacheEntry, cacheExpiryOptions);
}
var result = _memoryCache.Get("hanoi12345");
<br/>
@result
<br/>
@cacheEntry
}