【问题标题】:ASP.NET Image Control not updated after ImageUrl changeImageUrl 更改后 ASP.NET 图像控件未更新
【发布时间】:2011-07-19 17:30:35
【问题描述】:

我对 ASP.NET 还很陌生,当然碰巧遇到了一些奇怪的问题。
问题很受欢迎,但我发现的所有回复都不适合我。

我有一个简单的图像:

<asp:Image ID="userImage" runat="server" ImageAlign="Right" />

在代码隐藏中:

If Not Session("selecteduser") Is Nothing Then
    userImage.ImageUrl = "~/showphoto.aspx?user=" & Session("selecteduser")
End If

而且图像没有改变。它甚至不会启动 showphoto.aspx 代码。 该属性已更改(因为下次我进入它时,它已更改),但从未触发 showphoto。

我知道图像缓存问题,但我什至无法获得一张图像,更不用说它是否已更改。 当然有一个非常简单的解释,但我现在已经为此奋斗了 2 天,但无济于事。

【问题讨论】:

  • 在网页上右键单击 html 页面,然后查看呈现的代码 - 在那里查看图像的最终路径,以及尝试调用的内容。您也可以在 google chrome 上使用 firebug 或检查工具来查看要查找的内容。
  • @Aristos - 问题是客户端路径没有变化。更改后的 ImageUrl 属性仅在服务器端(代码隐藏)可见。
  • 更改ImageUrl的代码是否执行了?
  • 您在 html 呈现的页面上看到了什么?你能把它贴在这里吗?例如
  • @shrutyzet - 是的,它正在执行,我可以在调试中看到之前的执行结果。@Aristos - showphoto.aspx 在手动使用时可以正常工作。

标签: asp.net vb.net image imageurl


【解决方案1】:

我认为问题可能是以下之一:

  1. 会话对象“selecteduser”中没有任何内容可能导致未设置 imageurl 属性。 (解决方法:调试你的代码,确认有会话对象)

  2. 正在设置图像 url,但图像未更改,这可能是浏览器缓存的问题。 (解决方法:将当前日期时间追加到查询字符串参数列表中,强制浏览器加载新图片)。

  3. "showphoto.aspx" 是一个页面而不是图像,因此它返回的 html 代码未转换为图像。 (解决方法:将此页面的content-type属性改为image

【讨论】:

  • 1.已确认(我什至可以使用静态文本但仍然无法正常工作),2. 将尝试,3. showphoto.aspx 正在使用 response.binarywrite 写回 jpg,并且它自己可以完美运行。
  • 也试试添加这个context.Response.AddHeader("Content-Type", "image/jpeg");
  • 尝试使用userImage.ImageUrl = "showphoto.aspx?user=" &amp; Session("selecteduser")userImage.ImageUrl = "/showphoto.aspx?user=" &amp; Session("selecteduser")
  • 更改路径没有帮助
  • 如果你能把两个页面的全部代码都放在我的开发机器上,我会调试问题并把正确的代码发给你。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多