簡體   English   中英

為什么我的Aspx頁面在FireFox和IE中呈現不同的HTML

[英]Why is my Aspx page rendering different HTML in FireFox and IE

我遇到過一個問題,我的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>

盡管可見,但其他一些控件根本不會渲染。 替代文字 替代文字

我不知道這里發生了什么,我以前從未見過這種情況。 我使用的是最新版本的瀏覽器,我有asp.net 3.5和VS2008

更新:好的,這是一個AJAX頁面,gridview位於更新面板內,它響應LinkBut​​ton的OnCommand事件。 代碼顯然編譯,它在IE上運行良好。

我在firefox上檢查了Page Source,它和圖像一樣。 關於包含DIV標簽的ID缺乏,有一個很好的觀點。 嵌入式腳本是否會導致FireFox出現問題? 那個id從數字開始怎么樣?

當然這是由自適應渲染引起的,其中ASP.Net發布為瀏覽器量身定制的html?

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

在您的代碼示例中,asp:LinkBut​​ton標記格式不正確 - 缺少“<”。

您的模板看起來還有其他一些問題。

正如克里斯在評論中所說:“可能鏈接沒有href嗎?”

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

請記住,使用Firebug查看Firefox中的源代碼,並實際查看源代碼(右鍵單擊|查看頁面源代碼)是兩回事 - Firebug將顯示源代碼,由瀏覽器解析和處理,添加任何內容JavaScript或瀏覽器引擎已添加/更改 - 使用View Page Source將顯示在發生任何處理之前從服務器返回的實際源 - 該代碼是否正確/相同?

BrowserCaps用於在1.x世界中制作各種控件的正確混亂 - 但是它們已經更新以支持Firefox等與ASP.NET 2.0,因此它們不應該影響這里的事情。

我非常痴迷於承認我已經做出了最缺乏思想的錯誤

Jay S非常正確地指出我應該確保我正在查看正確的代碼實例。 本地版本上的某些鏈接指向Dev Server上的Dev版本。 它不是最新的,並且在將產品名稱轉換為鏈接之前實際上已經運行了舊代碼。

為浪費集體大腦能量而道歉並感謝大家的回復。

根據Microsof的LinkBut​​ton“在網頁上顯示超鏈接式按鈕控件。”。 因此,我不希望自適應渲染將其從HyperLink更改為跨度。 我從未見過這種行為。

如果這確實是發生了什么,那么你可能想要檢查幾個thigs:

  1. 是否有任何DHTML或JS加載在頁面發布后更改HTML?
  2. 是否安裝了任何程序集/服務器控件,以覆蓋鏈接按鈕的默認行為?
  3. 嘗試使用綁定鏈接按鈕的空白soloution並嘗試重現,然后通過向項目添加asseblies和控件來確定導致問題的原因。

遺憾的是,您的問題中沒有足夠的信息來自您的代碼和屏幕截圖,以便在此階段給您一個明確的答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM