刷新网页以获取新图片

时间:2015-06-30 14:18:47

标签: asp.net vb.net caching image-processing refresh

好的,这是我的设置:我有一个带有vb.net后端的aspx内容页面。该页面基本上是用户配置文件样式页面。我在页面中添加了一个照片部分...上传和删除工作正常...从占位符图像开始,用户可以选择一个文件,上传它(然后将其保存在图像的子目录中用户的ID为文件名),页面重定向(重新加载)本身,之后您可以看到上传的图像。在反向工作正常 - 删除它删除文件,页面重新加载并显示占位符图像。

我遇到的问题是,如果他们选择一个文件,上传它,但随后想要更改它。它删除旧文件就好了,并将新文件保存为 userID .jpg,但是,当我执行response.redirect时,仍会显示旧图像。我认为这是因为图像被缓存(因为它具有相同的文件名。)浏览器中的手动刷新设置正确,但我想避免告诉用户他们需要这样做:/我看到了MSDN有一个webBrowser.Refresh方法,但我想我错过了一些东西,因为intellisense给了我一个死亡的曲线,我也尝试过server.transfer没有变化。我试过......

Response.CacheControl = "no-cache"
Response.AddHeader("Pragma", "no-cache")
Response.Expires = -1

仍然没有工作。我已经看过的唯一一个我没有探索的选择是在meta标签中添加类似的代码,我已经看到它可以包含no-cache位,或者是一个过期超时来强制重新加载,但是我不知道它会有不同的结果,这将涉及与主页面混淆,主页面被许多其他内容页面使用...有关如何让这张图片重新加载的任何想法?< / p>

2 个答案:

答案 0 :(得分:1)

您可以尝试向浏览器发送Javascript代码块以刷新页面,如果您对该页面没问题,只需在您的事件方法中写一下:

ScriptManager.RegisterStartupScript(this, this.GetType(), "reloadPage", "location.reload();", true);

答案 1 :(得分:0)

以下是我如何解决这个问题: 将我的图片标记更改为asp:image控件。然后,在页面加载期间,将带有now.ticks.tostring()的查询字符串添加到control.imageURL。