我有一个actionResult,我已经添加了缓存。
[OutputCache(Duration = 120)]
当我更改页面上的某些元素(缓存)时,我想删除缓存的输出。这就是我做的事情
public void RemoveCachingForProfile(string guid)
{
HttpResponse.RemoveOutputCacheItem("/Profile/" + guid);
}
当我在页面中更改内容时,我会通过RemoveCachingForProfile
功能。然后,当我回到我的个人资料页面时,它仍会显示缓存中的内容,即使我禁用了它。
如果我点击f5,它会显示正确的输出。它似乎是缓存页面的浏览器。
答案 0 :(得分:2)
您必须将缓存存储在服务器而不是本地计算机上:
[OutputCache(Location = OutputCacheLocation.Server, Duration = 120)]
这是依赖性:
System.Web.UI
答案 1 :(得分:1)
如果没有Location属性,除了服务器端缓存之外,输出缓存提供程序还会告诉客户端(浏览器)在属性属性上给出的持续时间内缓存响应。为防止这种情况,您需要使用Location
的OutputCacheAttribute属性将属性更改为此可以解决您的问题:
[OutputCache(Duration = 120, Location=OutputCacheLocation.Server)]