Вы можете использовать метод RemoveOutputCacheItem .Итак, давайте предположим, что вы вызвали такой метод для получения компаний:
/somecontroller/getcompanyname/123
Чтобы истечь этот URL из кэша, чтобы при следующем вызове он получал свежие результаты:
public ActionResult Expire()
{
Response.RemoveOutputCacheItem("/somecontroller/getcompanyname/123");
return Content("The cache was expired for the company with id = 123");
}
Но IMHO для этого сценария было бы лучше использовать кэш второго уровня NHibernate для кэширования результатов, а не кэшировать все действие с атрибутом OutputCache.Все, что делает это действие - возвращает сериализованный объект JSON, полученный из базы данных.Дорого стоит не вызов действия, а вызов базы данных.Поэтому кэшируйте только результаты этого вызова базы данных (используя кеш ORM или поставщиков системного кэша), так как это обеспечит вам более надежный контроль над политиками истечения срока действия этого кэша.