Кэш не работает на клиенте для ответа JSON - PullRequest
2 голосов
/ 30 марта 2012

У меня есть метод, который возвращает сложный объект JSON. Это тяжелый метод обработки, который я пытаюсь сохранить в кеше и оставить там до тех пор, пока не будет произведена модификация его объектов.

[HttpPost]
[OutputCache(Duration=50, Location = OutputCacheLocation.Client, VaryByParam="none", NoStore = false)]
        public ActionResult CacheTest()
        {
            //retrieves data from database
            var data = DBContext.GetUserLog();

            return Json(new { userLog = data});
        }

Настройка Location = OutputCacheLocation.Client и VaryByParam = 'none' не работает. Если я установлю Location = OutputCacheLocation.ServerAndClient, ответ будет правильно кэширован.

Какие-либо причины, по которым OutputCache не хранит информацию JSON на стороне клиента?

1 Ответ

2 голосов
/ 31 марта 2012

IIRC POST-запросы не кэшируются на клиенте. Этот глагол предназначен для использования при изменении состояния на сервере, чего вы, похоже, не делаете. Если вы возвращаете некоторые значения с сервера без изменения состояния, используйте вместо этого GET.

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