在Controller上添加/删除缓存作为过滤器

时间:2010-12-07 02:58:58

标签: asp.net asp.net-mvc

我正在寻找一个缓存过滤器,可以在执行某些操作时将其删除。 假设

我有索引操作,它正在加载记录并使用过滤器缓存一分钟。 只要我调用Index,就必须缓存操作并且不会访问db。

一旦我在Create动作中创建了一个记录,它就应该删除缓存,从而加载来自DB的记录。

有没有解决方案。 我在Ninject web示例中找到了一个,如下所示。我正在寻找相同的解决方案。

[Cache(0, 0, 5, 0)]
public ActionResult Index()
{
    //Code here....
}

[HttpPost]
[ClearCacheOnSuccess("Index")]
public ActionResult Create(string confirmButton, CreateViewModel userVm)
{
    //Code here...
}

1 个答案:

答案 0 :(得分:0)

根据缓存的持久位置(服务器或客户端),您可以使用RemoveOutputCacheItem方法:

var urlToRemove = Url.Action("Index", "Home");
Response.RemoveOutputCacheItem(urlToRemove);