如果控制器操作在操作上指定了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 );
}
发布于 2018-05-08 17:22:20
试试这个。
var urlToRemove = Url.Action("AjaxHtmlOutputMethod", "Controller");
HttpResponse.RemoveOutputCacheItem(urlToRemove);
更新:
var requestContext = new System.Web.Routing.RequestContext(
new HttpContextWrapper(System.Web.HttpContext.Current),
new System.Web.Routing.RouteData());
var Url = new UrlHelper(requestContext);
更新:
试试这个:
[OutputCache(Location= System.Web.UI.OutputCacheLocation.Server, Duration=3600,VaryByParam="param1;param2")]
否则缓存删除将无法工作,因为您已经在用户的机器上缓存了HTML输出
https://stackoverflow.com/questions/-100008416
复制相似问题