MVC3清除缓存来自Controller问题的actionResult

时间:2011-12-12 22:07:21

标签: c# asp.net-mvc-3

我的MVC3应用程序中有一个非常数据密集的操作。为了获得一些性能提升,我将结果缓存如下:

[OutputCache(Duration=60,VaryByParam="none")]
    public ActionResult Index(string server, string database)
{ //get+display a list of objects
}

这很有效。但是如果某些操作像EditCreate那样发生,我想清除缓存。要清除缓存,我正在执行此操作

var urlToRemove = Url.Action("HtmlOutputMethod", "Controller");
Response.RemoveOutputCacheItem(urlToRemove);

以下:How to programmatically clear outputcache for controller action method

但是当我尝试在服务器上缓存操作以便缓存删除实际上是这样的:

[OutputCache(Location="Server", Duration=60,VaryByParam="none")]
    public ActionResult Index(string server, string database)

我收到此错误:

  

无法隐式转换类型'string'   'System.Web.UI.OutputCacheLocation'

这是在MVC3中弃用了还是我错过了程序集?我看到它在整个地方使用,但它不会在我的机器上编译。

1 个答案:

答案 0 :(得分:1)

正如它所说的那样使用OutputCacheLocation:

[OutputCache(Location=OutputCacheLocation.Server, Duration=60,VaryByParam="none")]
public ActionResult Index(string server, string database)

在使用时添加:

using System.Web.UI;