【问题标题】:Why is my Aspx page rendering different HTML in FireFox and IE为什么我的 Aspx 页面在 FireFox 和 IE 中呈现不同的 HTML
【发布时间】:2010-10-03 18:08:24
【问题描述】:

我遇到了一个问题,我的 asp.net 代码在 Firefox 和 IE 上呈现不同。当我说不同时,我的意思是,IE 中的链接按钮呈现为锚标记。然而,在 Firefox 上,它呈现为一个 span

代码示例

<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 在一个更新面板内,它对 LinkBut​​ton 的 OnCommand 事件做出反应。该代码显然可以编译,并且在 IE 上运行良好。

我在 Firefox 上检查了页面源,它​​与图像相同。 关于包含的 DIV 标签上缺少 ID 的观点很好。嵌入式脚本是否会导致 FireFox 出现问题? id 以数字开头呢?

【问题讨论】:

  • 如果上面的代码是你使用的,它不应该编译。
  • 我为这个问题道歉,但我通常会遇到这种情况:您检查过 URL 并确保两个浏览器都指向同一个代码实例吗?
  • 你能显示渲染到每个浏览器的实际 HTML 吗?
  • @jay - 你是对的。我是哑巴

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


【解决方案1】:

这肯定是由自适应渲染引起的,ASP.Net 会发出为浏览器量身定制的 html?

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

【讨论】:

  • 我不认为自适应渲染会导致链接按钮呈现为跨度。
  • 如果链接没有href可能?
【解决方案2】:

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

【讨论】:

  • 文本属性也缺少引号。但是这些都应该导致编译器失败。
  • 那只是复制的错误
【解决方案3】:

您的模板似乎还有其他问题。

正如 Chris 在评论中所说的“如果链接没有href?”

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

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

BrowserCaps 曾经在 1.x 世界中将各种控件弄得一团糟 - 但是它们已更新为支持 ASP.NET 2.0 的 Firefox 等,因此它们不应该影响这里的东西。

【讨论】:

  • 当然,如果这是一个 AJAX 页面,其中控件是在第一个页面请求之后创建的,那么在这种方法中查看源代码可能是不可能的。
  • 是的,但是在控制台部分会有其他错误报告 - 但在一天结束时,没有为此分配“AJAX”标签,我们有一个 ItemTemplate sn-p。
【解决方案4】:

我很不好意思承认自己犯了最心不在焉的错误

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

对浪费集体脑力表示歉意,感谢大家的回复。

【讨论】:

  • 当您无法弄清楚为什么某些东西无法正常工作时,经常会出现这种情况。作为开发人员,我们被细节束缚住了,几个小时后才意识到我们正在寻找错误的服务器或其他东西!
【解决方案5】:

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

如果确实发生了这种情况,那么您可能需要检查以下几点:

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

很遗憾,您的代码和屏幕截图中没有足够的信息在此阶段为您提供明确的答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-23
    • 1970-01-01
    相关资源
    最近更新 更多