相关疑难解决方法(0)

如何以编程方式清除控制器操作方法的outputcache

如果控制器操作在操作上指定了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 );
}
Run Code Online (Sandbox Code Playgroud)

我正在考虑使用HttpResponse.RemoveOutputCacheItem(string path)它来清除它,但是我很难弄清楚应该将它映射到action方法的路径.我将再次尝试使用ViewName呈现的aspx页面.

也许我只是手动插入的输出RenderToStringHttpContext.Cache,而是如果我不明白这一个.

更新

请注意,OutputCache是​​VaryByParam,测试出硬编码路径"/ controller/action"实际上并没有清除outputcache,所以看起来它必须匹配"/ controller/action/param1/param2".

这意味着我可能不得不恢复到对象级缓存并手动缓存输出RenderToString():(

asp.net asp.net-mvc

62
推荐指数
3
解决办法
4万
查看次数

以编程方式在asp.net mvc中中止OutputCache持续时间

我正在使用OutputCache属性在服务器端缓存我的动作的html输出.

很好,它可以工作,但现在我的情况是内容很少变化,但是当它发生时,用户在下一个请求中看到新数据至关重要.

那么,有没有办法以编程方式中止页面缓存持续时间?

c# model-view-controller asp.net-mvc caching outputcache

4
推荐指数
1
解决办法
3767
查看次数