首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何以编程方式清除控制器操作方法的输出缓存?

如何以编程方式清除控制器操作方法的输出缓存?
EN

Stack Overflow用户
提问于 2018-05-08 08:40:30
回答 2查看 0关注 0票数 0

如果控制器操作在操作上指定了OutputCache属性,那么是否有任何方法可以在不重新启动IIS的情况下清除输出缓存?

代码语言:txt
复制
[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 );
}
EN

Stack Overflow用户

发布于 2018-05-08 17:22:20

试试这个。

代码语言:txt
复制
var urlToRemove = Url.Action("AjaxHtmlOutputMethod", "Controller");
HttpResponse.RemoveOutputCacheItem(urlToRemove);

更新:

代码语言:txt
复制
var requestContext = new System.Web.Routing.RequestContext(
    new HttpContextWrapper(System.Web.HttpContext.Current),
    new System.Web.Routing.RouteData());

var Url = new UrlHelper(requestContext);

更新:

试试这个:

代码语言:txt
复制
[OutputCache(Location= System.Web.UI.OutputCacheLocation.Server, Duration=3600,VaryByParam="param1;param2")]

否则缓存删除将无法工作,因为您已经在用户的机器上缓存了HTML输出

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100008416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档