2014-09-18 5 views
0

Я пытаюсь реализовать кэширование для некоторых представлений и файлов на моей странице MVC4 (хотел бы chache на сервере и клиенте). Выглядит легко, но я не понимаю, почему он не работает для меня. Я попробовал этот маленький пример здесь:Outputcache в приложении MVC4

[OutputCache(Duration = 30000)] 
public string Test() 
{ 
    return DateTime.Now.ToLongTimeString(); 
} 

К сожалению, время в результате изменения каждый второй .. есть какие-либо настройки в WebConfig или IIS, которые должны были установлены? Я ничего не узнал об этом, но понятия не имею, почему даже этот маленький пример не работает. Надеюсь, ты поможешь мне?

благодарит заранее!

ответ

0

Это должно работать:

[OutputCache(Duration = 30000, Location = OutputCacheLocation.ServerAndClient, VaryByParam="none")] 
public string Test() 
{ 
    return DateTime.Now.ToLongTimeString(); 
} 
+0

Я пробовал этот очень простой пример, но все же я получаю после каждого обновления (Ctrl + R) новое время? – user1584028

+0

взгляните на этот вопрос, возможно, у вас есть аналогичная проблема: http://stackoverflow.com/questions/20027813/why-is-output-caching-not-working-for-my-asp-net-mvc-4 -app –

+0

спасибо alex. Был глобальный фильтр, который автоматически установил cookie - это была моя проблема. – user1584028

0

Там не было достаточно информации, чтобы решить, так или иначе, но это может быть сделать, чтобы с параметрами, вы можете попробовать [OutputCache(Duration = 3600, VaryByParam = "none")]

или создать раздел кэширования и refeer к нему по идентификатору

<caching> 
<outputCacheSettings> 
    <outputCacheProfiles> 
     <add name="CacheExample" duration="3600" varyByParam="none"/> 
    </outputCacheProfiles> 
</outputCacheSettings> 
</caching> 

а затем использовать

[OutputCache(CacheProfile="CacheExample")] 
public string Test() 
{ 
    return DateTime.Now.ToLongTimeString(); 
}