2009-01-27 70 views
1

我碰到过一个问题,我的asp.net代码在Firefox和IE上渲染的方式不同。当我说不同时,我的意思是,IE中的linkBut​​ton呈现为定位标记。在Firefox但是,它呈现为一个跨度为什么我的Aspx页面在FireFox和IE中呈现不同的HTML

代码示例

<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 http://i39.tinypic.com/i739k4.jpgalt text http://i40.tinypic.com/154dee1.jpg

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

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

我检查了Firefox的页面源代码,它与图像相同。 关于包含DIV标签的ID缺乏有一个很好的观点。嵌入式脚本是否会导致FireFox出现问题?关于编号从数字开始呢?

+0

如果上面的代码是你用过的,它不应该编译。 – Ady 2009-01-27 13:09:36

+3

我对这个问题表示歉意,但这是我自己经常遇到的情况:您是否检查过URL并确保两个浏览器都指向同一个代码实例? – 2009-01-27 13:11:35

+0

您可以显示呈现给每个浏览器的实际HTML吗? – roryf 2009-01-27 13:12:31

回答

1

我很emabarrased承认,我已经做出了最心不在焉的失误

周杰伦小号的非常正确地指出,我要确保我看代码的正确实例。 本地版本上的某些链接指向Dev Server上的Dev版本。它没有及时更新,实际上在产品名称转换为链接之前,旧代码已经运行。

为了浪费集体大脑的能量而致歉,谢谢大家的回复。

1

在你的代码示例中,ASP:LinkBut​​ton的标签格式不正确 - 是有缺失的 “<”。

0

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

如果这是真正发生了什么事,那么你可能要检查几个thigs的:

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

不幸的是,在您的问题中没有足够的信息从您的代码和屏幕截图中为您在此阶段给出明确的答案。

1

它看起来像你的模板有一些其他问题。

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

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

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

BrowserCaps用于在1.x世界中创建各种控件的正确混乱 - 不过它们已更新为支持Firefox 2.0等,因此它们不应该影响这里的东西。

相关问题