我遇到缓存问题。
当我更改Image控件的ImageUrl属性时,浏览器有时会使用缓存,因此不会显示新图像。
如何解决问题,以便在更改ImageUrl属性后显示新图像?
这是我的代码:
string url = some code;
imgAvatar.ImageUrl = url;
答案 0 :(得分:3)
您可以通过添加以下选项来关闭页面缓存
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1));
Response.Cache.SetNoStore();
Response.Buffer = true;
Response.CacheControl = "no-cache";
Response.AddHeader("Pragma", "no-cache");
Response.AppendHeader("Cache-Control", "no-store");
Response.Expires = -1441;
答案 1 :(得分:1)
另一种避免单个组件缓存的方法是Joel在早期的StackOverflow播客中讨论的内容:在您要避免缓存的组件的url末尾附加一个唯一标识符作为http参数。然后在需要确保用户获得新版本时更新该标识符。
因此,如果您的网址是“http://www.mysite.com/images/myimage.png”,那么您可以使用“http://www.mysite.com/images/myimage.png?v=20110819a”
注意:通常这个技巧更适用于Javascript和/或CSS而不是图像。