Как программно очистить outputcache для метода действия контроллера

Аналогично ответу vladkras на Как импортировать файл SQL с помощью командной строки в MySQL? .

Ключевые различия для меня:

  1. База данных должна существовать первой
  2. Нет пробела между -p и паролем

shell> mysql -u root -ppassword #note: no space between -p and password
mysql> CREATE DATABASE databasename;
mysql> using databasename;
mysql> source /path/to/backup.sql

Я использую Fedora 26 с MariaDB.

62
задан avs099 21 October 2013 в 23:54
поделиться

3 ответа

Попробуйте это

var urlToRemove = Url.Action("AjaxHtmlOutputMethod", "Controller");
HttpResponse.RemoveOutputCacheItem(urlToRemove);

ОБНОВЛЕНО:

var requestContext = new System.Web.Routing.RequestContext(
    new HttpContextWrapper(System.Web.HttpContext.Current),
    new System.Web.Routing.RouteData());

var Url = new System.Web.Mvc.UrlHelper(requestContext);

ОБНОВЛЕНО:

Попробуйте следующее:

[OutputCache(Location= System.Web.UI.OutputCacheLocation.Server, Duration=3600,VaryByParam="param1;param2")]

В противном случае удаление кеша не будет работать, потому что вы кэшировал вывод HTML на компьютере пользователя

53
ответ дан 24 November 2019 в 16:53
поделиться

Другой вариант - использовать VaryByCustom для OutputCache и обрабатывать там недействительность определенных элементов кеша.

Возможно, это сработает для вас, но это не общее решение вашей проблемы

3
ответ дан 24 November 2019 в 16:53
поделиться

Я думаю, что правильный поток это:

filterContext.HttpContext.Response.Cache.SetNoStore()
4
ответ дан 24 November 2019 в 16:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: