2014-02-17 3 views
6

Я новичок в MVC, и у меня есть проект для преобразования из MVC2 в последнюю версию MVC. Я прочитал несколько книг о MVC 4, поэтому начал понимать основные механизмы.«CacheProfile» в MVC 5

Однако при преобразовании моего решения MVC 2 у меня есть проблема с атрибутом: OutputCache.

Напр. У меня есть несколько действий, как это (атрибуты могут различаться):

[OutputCache(CacheProfile = "ProductImage")] 
public ActionResult GetImage(Guid elementId, int imgtype) 

в Web.Config я есть в "кэшировании> outputCacheSettings> outputCacheProfiles>":

<add name="ProductImage" duration="5" varyByParam="elementId,imgtype" /> 

и получение следующее исключение на выходе:

OutputCacheAttribute для детей действий поддерживает только продолжительность, VaryByCustom и значения VaryByParam. Не устанавливайте CacheProfile, Местоположение, NoStore, SqlDependency, VaryByContentEncoding или Значения VaryByHeader для дочерних действий.

Как я понял, проблема возникает только с дочерними действиями.

  • Есть ли другой способ иметь профиль кеша в последнем MVC?
  • Есть ли способ определить, является ли действие дочерним, чтобы изменить только это действие?

ответ

3

Решенный установка MvcDonutCaching NuGet и замена [OutputCache с [DonutOutputCache ...

См more о.

+0

Это блестящее решение, которое работает, и я бы рекомендовал – ozzy432836

0

Прочтите ответ this question, я считаю, что он отвечает на ваш вопрос довольно хорошо.

+0

Решение там не сработало для меня, а также некоторые другие разработчики не советуют против него. – ozzy432836