Вышесказанное хорошо, если вы знаете, для каких страниц вы хотите очистить кеш. В моем случае (ASP.NET MVC) я ссылался на одни и те же данные со всех концов. Поэтому, когда я сделал [сохранить], я хотел очистить кеш сайта. Вот что у меня сработало: http://aspalliance.com/668
Это делается в контексте фильтра OnActionExecuting. Это так же легко сделать, переопределив OnActionExecuting в BaseController или чем-то еще.
HttpContextBase httpContext = filterContext.HttpContext;
httpContext.Response.AddCacheItemDependency("Pages");
Установка:
protected void Application_Start()
{
HttpRuntime.Cache.Insert("Pages", DateTime.Now);
}
Незначительный твик:
У меня есть помощник, который добавляет «флеш-сообщения» (сообщения об ошибках, сообщения об успехе - «Этот элемент был успешно сохранен» и т. Д.). Чтобы избежать появления флеш-сообщения при каждом последующем GET, я должен был сделать недействительным после написания флеш-сообщения.
Очистка кэша:
HttpRuntime.Cache.Insert("Pages", DateTime.Now);
Надеюсь, это поможет.