ASP.Net MVC 3.Удалить действие из кэша вывода
Я нашел подобные вопросы/ответы, но ни один не кажется, решить эту проблему ...
Похожие: HttpResponse.RemoveOutputCacheItem is not working
How to "invalidate" portions of ASP.NET MVC output cache?
Я использую OutputCache для кэширования FileContentResult (изображения).
Мои действия выглядит следующим образом:
[HttpGet]
[OutputCache(Location = OutputCacheLocation.Client, Duration = 300, VaryByParam = "id")]
public FileContentResult Photo(int id) {
byte[] photo = //GetPhoto;
return File(photo,"image/jpeg");
}
На мой взгляд, я должен следующее:
<img src="@Url.Action("Photo", "Client", new {id = Model.Id})"/>
Это прекрасно работает, и кэширование вывода работает, как ожидалось .... Теперь проблема
Я пытаюсь сбросить кеш после обновления.
код в действии, которое обновляет выглядит следующим образом:
var url = Url.Action("Photo", "Client", new {id = Model.Id});
Response.RemoveOutputCacheItem(url);
Проблема заключается в кэш не сбрасывается. Когда я отлаживаю, я не могу найти, где находится объект кэша (я попробовал System.Web.HttpContext.Current.Cache, но у него, похоже, нет кэшированного элемента).
Спасибо за помощь!
Это именно то, что я искал! :) Работает как шарм. –