2015-10-08 2 views
2

Я реализовал outputcaching по методу действий контроллера сКэширование вывода с адресом = Сервер не работает

[OutputCache(Duration = 60, VaryByParam = "ID", VaryByHeader="User-Agent", Location = System.Web.UI.OutputCacheLocation.Server)] 
public ActionResult MyAction(int ID) 
{ 
    _logger.Error("call-" + ID); 
} 

и я сделал запись в журнале в рамках этой акции. Итак, моя проблема - кэширование вывода с помощью location = Server каждый раз вызывает этот метод действия. Он не должен звонить каждый раз.

Итак, в чем проблема с этим?

Когда я изменил местоположение кэширования i.e location = Client, то только в первый раз, когда он вызывает этот метод. Затем после этого метод действия не вызывается.

+0

Как долго вы покидаете его, прежде чем совершать второй звонок? – Luke

+0

У меня установлен Duration = 60 sec & after 1st request, который я нажал после 4-5 секунд, но он не извлекает из кеширования. – chitra

+0

И каждый раз для каждого запроса он одинаковый ID? – Luke

ответ

1

Вы пытаетесь кэшировать выходные данные в ChildAction? Я знаю, что вы не написали атрибут ChildAction в своем вопросе, а просто попросили подтверждения? Если это так, вы не можете использовать кэширование вывода, в котором не выполняются дочерние действия. Вам нужно использовать плагин кеширования this, если вы хотите использовать кэширование вывода без дочернего действия.

+0

Это не ChildAction. Но спасибо за ваш ценный ответ. – chitra

+0

Вот что я говорю. Если это не дочернее действие, вы не можете использовать кэширование MVC Inbuild. Вам нужно использовать кеш-кед. –

+0

Хорошо .. Я понимаю. Спасибо. – chitra

 Смежные вопросы

  • Нет связанных вопросов^_^