Проблема с кэшированием для методов без представления в MVC3 - PullRequest
0 голосов
/ 22 марта 2012

Я создаю приложение MVC и хотел бы включить кэширование в мое приложение. Я читал о кешировании, которое вам нужно просто поставить [OutputCache (Duration = 60, VaryByParam = "none")] выше метода контроллера, и он будет работать. Однако в моем случае я хотел бы кэшировать не все методы контроллера, а внутренние методы, которые будут вызываться из контроллера индекса и которые будут возвращать IEnumerable<SelectListItem>, и результат, который я хочу кэшировать.

Но кэширование - это только работа для методов контроллера, которые приведут к результату просмотра, я также искал кэширование для методов, не относящихся к представлению, и нашел несколько MVCDonutCaching , прочитал этой статьи и установил пробовал это также согласно ниже

   [DonutOutputCache(Duration=60, VaryByParam="none")]
    public IEnumerable<SelectListItem> GetRegionList()
    {
        Region region = new Region();

        return region.GetRegionsList();
    }

Но не удача в достижении моей цели! кто-нибудь делал этот тип кеширования здесь? тогда, пожалуйста, помогите мне достичь этого.

Заранее спасибо.

1 Ответ

1 голос
/ 22 марта 2012

Я полагаю, что ваша проблема не в самом mvc, а в данных модели кэширования.Кэширование действия вашего контроллера похоже на формирование статической страницы и ее сохранение в кеше IIS.Каждый раз, когда пользователь запрашивает «Home / Index» (например), IIS берет правильно сформированную страницу (html) из кэша без выполнения какого-либо кода.

То, что вы пытаетесь сделать, это данные модели кэша,Это совсем другое дело, поскольку оно не имеет ничего общего с IIS и формированием HTML-страниц.Вы можете использовать существующие решения, такие как: Unity Application Block - http://msdn.microsoft.com/en-us/library/ff649102.aspx Или это сообщение из stackexchange: https://softwareengineering.stackexchange.com/questions/35709/recommendations-for-a-net-distributed-caching-framework

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