У меня есть ActionResult, который кэшируется.
[OutputCache(Duration = 3600, VaryByParam = "product_Id")]
public ActionResult ProductPreview(Guid product_Id)
{
// just for testing the cache
System.Threading.Thread.Sleep(4000);
return PartialView("ProductPreview", _repository.CreateProductModel(product_Id));
}
Хорошо, что кеш работает. После первой загрузки результат отображается без задержки в 4 секунды.
Однако мне нужно очистить кеш, когда некоторые изменения были внесены в этот продукт.
Я попытался очистить кеш следующим образом:
public ActionResult RemoveCache()
{
var url = Url.Action("ProductPreview", "Common");
// also tried with parameter
// var url = Url.Action("ProductPreview", "Common", new { @product_Id = "productId" });
HttpResponse.RemoveOutputCacheItem(url);
return RedirectToAction("Index");
}
Я также попытался вызвать метод RemoveCache как с обновлением ajax, так и с полным обновлением страницы, и не работает.
Что я могу сделать? Где проблема?