Если действие контроллера имеет атрибут OutputCache, указанный в действии, есть ли способ очистить выходной кеш без перезагрузки IIS?
[OutputCache (Duration=3600,VaryByParam="param1;param2")]
public string AjaxHtmlOutputMethod(string param1, string param2)
{
var someModel = SomeModel.Find( param1, param2 );
//set up ViewData
...
return RenderToString( "ViewName", someModel );
}
Я использую HttpResponse.RemoveOutputCacheItem(string path)
, чтобы очистить его, но мне трудно понять, каким должен быть путь, чтобы сопоставить его с методом действия. Я снова попытаюсь использовать страницу aspx, которая отображается в представлении ViewName.
Возможно, я просто вручную вставлю вывод RenderToString
в HttpContext.Cache
вместо этого, если я не смогу это сделать.
Update
Обратите внимание, что OutputCache - это VaryByParam, и тестирование жесткого пути "/controller/action" на самом деле не очищает выходнойcache, поэтому похоже, что он должен соответствовать "/controller/action/param1/param2".
Это означает, что мне, вероятно, придется вернуться к кешированию уровня объектов и вручную кэшировать вывод для RenderToString()
: (