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

时间:2009-01-27 13:01:47

标签: html internet-explorer firefox asp.net-3.5 rendering

我遇到过一个问题,我的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从数字开始呢?

5 个答案:

答案 0 :(得分:1)

当然这是由自适应渲染引起的,ASP.Net会为浏览器定制html?

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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

查看已在Firefox中生成的html,在包含div时也没有ID - 而在IE中也是如此。

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

BrowserCaps过去常常在1.x世界中制作各种各样的控件 - 但是它们已经更新为支持Firefox等的ASP.NET 2.0,所以它们不应该影响这里的东西。

答案 3 :(得分:1)

我非常痴迷于承认我已经做出了最缺乏思想的错误

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

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

答案 4 :(得分:0)

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

如果确实发生了这种情况,那么您可能需要检查几个问题:

  1. 是否有任何DHTML或JS加载在页面发布后更改HTML?
  2. 是否安装了任何程序集/服务器控件,以覆盖链接按钮的默认行为?
  3. 尝试使用绑定链接按钮进行空白处理并尝试重现,然后通过添加asseblies&amp;控制项目以确定导致问题的原因。
  4. 遗憾的是,您的问题中没有足够的信息来自您的代码和屏幕截图,以便在此阶段给您一个明确的答案。