Задать вопрос
@Aricce

Как работать с кэшем ASP.NET Core MVC?

Работаю c ASP.NET Core MVC, уже 7 часов пытаюсь сохранить 1 значение размера страницы в кэш\куки\сессию.
в Startup добавил в метод ConfigureServices services.AddMemoryCache(); services.AddSession();
метод Configure такой:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IMemoryCache cache)
        {
            
                if (env.IsDevelopment())
                {

                    app.UseDeveloperExceptionPage();
                    app.UseDatabaseErrorPage();
                }
                else
                {
                    app.UseExceptionHandler("/Home/Error");
                    // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                    app.UseHsts();
                }
                app.UseHttpsRedirection();
                app.UseStaticFiles();

               

                app.UseRouting();

                app.UseAuthentication();
                app.UseAuthorization();
            app.UseSession();
            
            cache.CreateEntry("_PageSize");
            cache.Set("_PageSize", 10);
            app.UseEndpoints(endpoints =>
            {
                app.UseEndpoints(endpoints =>
                {
                    endpoints.MapControllerRoute(
                        name: "default",
                        pattern: "{controller=Home}/{action=Index}/{id?}");
                    endpoints.MapRazorPages();
                });
            });

         
        }


пытался в самом контроллере что-то сделать:
private IMemoryCache _cache;
        public int cacheEntry;
        public const string SessionKeyName = "_PageSize";
        public int ps;
        private readonly AppDbContext _context;
        //private readonly IHttpContextAccessor _httpContextAccessor;
       
        public ProductCategoriesController(AppDbContext context, IMemoryCache memoryCache)
        {
            
            _context = context;
            _cache = memoryCache;

            _cache.CreateEntry("_PageSize");
            var cacheB = _cache.TryGetValue("_PageSize", out cacheEntry);
            if (!cacheB)
            {
                _cache.Set("_PageSize", 10);
                
                ps = 10;
            }
            else ps = cacheEntry;

        }


толку-ноль, смотрю через инструменты разработчика - нигде ничего не появляется, даже ошибки.
Что пошло не так?
  • Вопрос задан
  • 157 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы