我的MVC3应用程序中有一个非常数据密集的操作。为了获得一些性能提升,我将结果缓存如下:
[OutputCache(Duration=60,VaryByParam="none")]
public ActionResult Index(string server, string database)
{ //get+display a list of objects
}
这很有效。但是如果某些操作像Edit
或Create
那样发生,我想清除缓存。要清除缓存,我正在执行此操作
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中弃用了还是我错过了程序集?我看到它在整个地方使用,但它不会在我的机器上编译。
答案 0 :(得分:1)
正如它所说的那样使用OutputCacheLocation:
[OutputCache(Location=OutputCacheLocation.Server, Duration=60,VaryByParam="none")]
public ActionResult Index(string server, string database)
在使用时添加:
using System.Web.UI;