我们最近将服务器从 .NET 4.0 Framework 更新为 .NET 4.5 Framework。在更新之前,一切正常。更新后,似乎 ASP:Image 标记和 ASP:ImageButton 标记以及 runat="server" 的任何其他图像都显示为损坏的图像。
我已经弄清楚了为什么它们显示为损坏的图像,一旦将 src 属性生成为 HTML,就不会将其添加到 img 标记中,我遇到的问题是弄清楚为什么会发生这种情况。
相关代码如下:
ASP:
<asp:imagebutton id="btnAdmin" Runat="server" ImageUrl="images/nav_b4.gif" Height="35" Width="79" CommandName="admin" AlternateText="Admin"></asp:imagebutton>
生成的 HTML
<input type="image" name="btnAdmin" id="btnAdmin" onmouseout="tidyMenu(event);" onmouseover="openMenu(event,'nav_b4',1,5681366,16777215);setGraphic(event,'images/nav_b4_over.gif');return false;" alt="Admin" style="height:35px;width:79px;">
稍后将通过 JavaScript 插件附加 onMouseOver 和 onMouseOut 事件,但这似乎对图像的实际处理没有影响。事实上,如果我将鼠标悬停在按钮上,图像就会出现,因为这就是 JavaScript 正在做的事情,显示不同的悬停图像。
我想值得注意的是,即使在最基本的<ASP:Image>
标签上也会发生这种情况,例如:
<asp:Image ImageUrl="images/j0285247.gif" runat="server" ID="leftIcon" />
页面加载后显示为
<img id="leftIcon">
不幸的是,这是我们正在使用的一些遗留代码,所以它非常难看,但我只需要让它与 .NET 4.5 一起工作,我不知道为什么 src 属性没有附加到基于 img 的标签ASP 标记中的 ImageUrl 属性。
我们尝试了一些简单的事情,比如添加~/
到 ImageUrl 路径的前面,但这并没有帮助,因为我认为它与实际路径的关系不大,而更多地与 .NET 4.5 所做的事情有关。NET 4.0没有。
如果有人有任何想法,那就太好了。
谢谢你。