Можете ли вы принудительно удалить (страницу и частичное представление) OutputCache в asp.net-mvc - PullRequest
6 голосов
/ 27 июня 2011

Мне нужен простой способ очистки кэшированных страниц на моем сайте asp.net-mvc.

У меня дорогие операции с БД, поэтому я часто использую выходное кэширование, чтобы сайт работал быстрее.У меня есть код, который выглядит следующим образом:

    [OutputCache(Duration = 30000)]
    public ActionResult Index()
    {
         return View();
    }

    [OutputCache(Duration = 30000, VaryByParam = "*")]
    public ActionResult GetData(MyParams myParams)
    {
        return PartialView("MyView", GetVM(myParams));
    }

Есть определенные моменты (когда что-то идет не так), когда я хочу явно очистить этот кеш (независимо от существующей длительности кэша)

isтам в любом случае для полного и частичного вывода страницы кэширования, чтобы удалить кэшированную страницу и выполнить полный код?

ПРИМЕЧАНИЕ: Я вижу, что этот вопрос вообще уже задается вокруг asp.net, как здесь но я не вижу конкретного решения asp.net-mvc

Я пробовал это, но, похоже, не работает:

 public ActionResult ClearCache()
 {
      this.HttpContext.Response.RemoveOutputCacheItem("/MyController/Index.aspx");
      this.HttpContext.Response.RemoveOutputCacheItem("/MyController/MyView.ascx");
 }

Ответы [ 2 ]

1 голос
/ 27 июня 2011

Думаю, вы найдете ответ здесь: Очистка кэша страниц в ASP.NET

0 голосов
/ 15 декабря 2015

Для решения на основе MVC вы можете сделать что-то вроде этого

this.HttpContext.Response.RemoveOutputCacheItem(Url.Action("MyAction","MyController",new{ id = 1234}));
...