如何"无效"部分ASP.NET MVC输出缓存?

Mat*_*elk 46 asp.net-mvc caching

有没有办法以编程方式使ASP.NET MVC输出缓存的部分无效?我希望能够做的是,如果用户发布的数据更改了从缓存操作返回的内容,则能够使缓存的数据无效.

这甚至可能吗?

sir*_*cco 39

一种方法是使用该方法:

HttpResponse.RemoveOutputCacheItem("/Home/About");
Run Code Online (Sandbox Code Playgroud)

另一种方式在这里描述:http://aspalliance.com/668

我认为你可以通过为你想要的每个动作使用方法级别属性来实现第二个方法,并且只需要向其添加表示键的字符串.如果我理解你的问题就行了.

编辑:是的asp.net mvc OutputCache只是一个包装器.

如果您正在使用varyByParam="none"那么您只是无效"/Statistics"- 如果<id1>/<id2>是查询字符串值.这将使页面的所有版本无效.

我做了一个快速测试,如果你添加varyByParam="id1"然后创建页面的多个版本 - 如果你说invalidate invalidate "/Statistics/id1"它将使该版本无效.但你应该做进一步的测试.