为什么我的Aspx页面在FireFox和IE中呈现不同的HTML

问题描述 投票:1回答:5

我遇到过一个问题,我的asp.net代码在Firefox和IE上呈现的方式不同。当我说的不同时,我的意思是,IE中的linkBut​​ton呈现为锚标签。然而,在Firefox上,它呈现为跨度

代码示例

<ItemTemplate>
   <div id="<%#Eval("Id","{0}") %>">
     <asp:LinkButton ID="ProductName" runat="server" CommandName="Listing" 
       CommandArgument='<%# Bind("Id") %>' Text='<%# Bind("Name") %>PostBackUrl=""></asp:LinkButton>
     <asp:Label ID="lbl_pricePerUnit" runat="server" Text="" />
   </div>
</ItemTemplate>

其他一些控件根本没有渲染,尽管可见.alt text alt text

我不知道这里发生了什么,我以前从未见过这种情况。我使用的是最新版本的浏览器,我有asp.net 3.5和VS2008

更新:好的,这是一个AJAX页面,gridview位于更新面板内,它响应LinkBut​​ton的OnCommand事件。代码显然编译,它在IE上运行良好。

我在firefox上检查了Page Source,它和图像一样。关于包含DIV标签的ID缺乏,有一个很好的观点。嵌入式脚本是否会导致FireFox出现问题?那个id从数字开始怎么样?

html internet-explorer firefox asp.net-3.5 rendering
5个回答
1
投票

当然这是由自适应渲染引起的,其中ASP.Net发布为浏览器量身定制的html?

http://aspnetresources.com/blog/adaptive_rendering.aspx


1
投票

在您的代码示例中,asp:LinkBut​​ton标记格式不正确 - 缺少“<”。


1
投票

您的模板看起来还有其他一些问题。

正如克里斯在评论中所说:“可能链接没有href吗?”

看看在Firefox中生成的html,在包含div上也没有ID - 而在IE中则有。

请记住,使用Firebug查看Firefox中的源代码,并实际查看源代码(右键单击|查看页面源代码)是两回事 - Firebug将显示源代码,由浏览器解析和处理,添加任何内容JavaScript或浏览器引擎已添加/更改 - 使用View Page Source将显示在发生任何处理之前从服务器返回的实际源 - 该代码是否正确/相同?

BrowserCaps用于在1.x世界中制作各种控件的正确混乱 - 但是它们已经更新以支持Firefox等与ASP.NET 2.0,因此它们不应该影响这里的事情。


1
投票

我很尴尬地承认我已经做了最缺乏思想的错误

Jay S非常正确地指出我应该确保我正在查看正确的代码实例。本地版本上的某些链接指向Dev Server上的Dev版本。它不是最新的,并且在将产品名称转换为链接之前实际上已经运行了旧代码。

为浪费集体大脑能量而道歉并感谢大家的回复。


0
投票

根据Microsof的LinkBut​​ton“在网页上显示超链接式按钮控件。”。因此,我不希望自适应渲染将其从HyperLink更改为跨度。我从未见过这种行为。

如果这确实是发生了什么,那么你可能想要检查几个thigs:

  1. 是否有任何DHTML或JS加载在页面发布后更改HTML?
  2. 是否安装了任何程序集/服务器控件,以覆盖链接按钮的默认行为?
  3. 尝试使用绑定链接按钮的空白解决方案并尝试重现,然后通过向项目添加程序集和控件来确定导致问题的原因。

不幸的是,您的问题中没有足够的信息来自您的代码和屏幕截图,以便在此阶段为您提供明确的答案。

© www.soinside.com 2019 - 2024. All rights reserved.