如果控制器操作在操作上指定了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)
来清除缓存,但我无法确定路径应该映射到哪个操作方法。如果我无法解决这个问题,可能只需将RenderToString
的输出手动插入到HttpContext.Cache
中。
更新
请注意,OutputCache是按参数变化而定的,测试硬编码路径“/controller/action”实际上不能清除缓存,因此它看起来必须匹配“/controller/action/param1/param2”。
这意味着我可能需要回退到对象级别的缓存,并手动缓存RenderToString()
的输出 :(
location="Server"
- 你无法从服务器清除客户端的缓存。 - eu-ge-ne