如何在没有输入操作参数的情况下为控制器中的特定操作删除输出缓存

时间:2016-01-04 12:50:46

标签: asp.net-mvc outputcache

我对ASP.NET MVC 5中的缓存有疑问。 我有一个用OutputCacheAttribute修饰的动作。 这样的事情: OutputCache(持续时间= 900,位置=服务器,VaryByParam =" id")

在我的应用程序的某个地方,我想管理缓存并删除它们。 我使用了Response.RemoveOutputCacheItem(Url.Action(" Index"," Home"))删除了一个动作的所有缓存,但它没有用。

HttpResponse.RemoveOutputCacheItem()方法适用于带参数的操作,但我想清除没有参数的操作的所有输出缓存

例如:

控制器:

    [OutputCache(Duration = 900, VaryByParam = "*")]
    public ActionResult About(int id)
    {
        return View();
    }

路由:

routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

通过以下代码删除:

var x = Url.Action("About", "Home");
Response.RemoveOutputCacheItem(x);

0 个答案:

没有答案