我遇到过一个问题,我的asp.net代码在Firefox和IE上呈现的方式不同。当我说的不同时,我的意思是,IE中的linkButton呈现为锚标签。但是在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>
我不知道这里发生了什么,我以前从未见过这种情况。我使用的是最新版本的浏览器,我有asp.net 3.5和VS2008
更新: 好的,这是一个AJAX页面,gridview位于一个更新面板内,它响应LinkButton的OnCommand事件。代码显然编译,它在IE上运行良好。
我在firefox上检查了Page Source,它和图像一样。 关于包含DIV标签的ID缺乏,有一个很好的观点。嵌入式脚本是否会导致FireFox出现问题?那个id从数字开始呢?
答案 0 :(得分:1)
当然这是由自适应渲染引起的,ASP.Net会为浏览器定制html?
答案 1 :(得分:1)
在您的代码示例中,asp:LinkButton标记格式不正确 - 缺少“&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 LinkButton“在网页上显示超链接式按钮控件。”。因此,我不希望自适应渲染将其从HyperLink更改为跨度。我从未见过这种行为。
如果确实发生了这种情况,那么您可能需要检查几个问题:
遗憾的是,您的问题中没有足够的信息来自您的代码和屏幕截图,以便在此阶段给您一个明确的答案。