【问题标题】:Refresh webpage to get new picture刷新网页以获取新图片
【发布时间】:2015-09-17 09:39:28
【问题描述】:

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

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

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

还是不行。我见过的唯一没有探索过的选项是在元标记中添加类似的代码,我见过它可以包含无缓存位,或者过期超时以强制重新加载,但我不知道它会产生不同的结果,这将涉及与许多其他内容页面使用的母版页混在一起......关于如何让这张图片重新加载自己的任何想法?

【问题讨论】:

  • 你试过 Response.Cache.SetCacheability(HttpCacheability.NoCache) 吗?
  • 是的,抱歉,我忘记了我的清单中的那个,但是是的,这是我找到的第一批作品之一。在页面加载中尝试过,尝试在重定向之前将其另外添加,没有帮助。

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


【解决方案1】:

我是这样解决的: 将我的图像标签更改为 asp:image 控件。然后,在页面加载期间,将带有 now.ticks.tostring() 的查询字符串添加到 control.imageURL。

【讨论】:

    【解决方案2】:

    如果你同意的话,你可以尝试向浏览器发送一个 Javascript 代码块来刷新页面,只需在你的事件方法中写下这个:

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

    【讨论】:

      猜你喜欢
      • 2015-03-04
      • 2016-05-17
      • 2020-12-09
      • 2020-11-27
      • 2020-05-01
      • 2015-01-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多