2009-06-23 72 views
2

我有一個古老的asp.net應用程序。即使在IE7兼容模式下,IE8和IE7的行爲也不同。System.Web.UI.WebControls.Panel在IE8中呈現爲表格

該應用程序包含多個使用System.Web.UI.WebControls.Panel的用戶控件,在我看來,IE8(包括7模式)將面板渲染爲表格,但在IE7中,它們呈現爲div 。

在我看來,ASP.Net沒有正確識別瀏覽器,有沒有人有任何關於如何解決的指針?

回答

1

看這個

http://msdn.microsoft.com/en-us/library/x3k2ssx2(VS.80).aspx

重寫瀏覽器類型檢測

如果你想明確地控制頁面是如何 呈現,而不是 依賴於瀏覽器自動 檢測,您可以設置頁面的 ClientTarget屬性。您可以聲明性地將 屬性設置爲該頁面的@ Page指令的 的屬性,或者可以通過編程來設置它。

ClientTarget屬性 的值是您想爲其顯示頁面的瀏覽器類型 的別名。例如,對於 示例,要強制頁面爲Microsoft Internet Explorer 6.0, 呈現 ,可以使用別名uplevel。必須在配置 文件的 clientTarget元素(ASP.NET設置 架構)部分中定義 別名。預定義的默認值是ie5, ie4,上層和下層。

通過指定別名下級,你可以 強制頁面渲染HTML 3.2兼容的元素,無論請求是什麼瀏覽器的頁面。 同樣,通過指定上層,您可以強制頁面呈現CSS樣式 屬性,即使對於舊版瀏覽器 版本。

您可以創建 其他別名在Machine.config或 Web.config文件,使您能夠 創建自定義瀏覽器的定義定義它們。有關 的更多信息,請參閱ASP.NET 配置設置。

+0

現在我已經設置了ClientTarget =「uplevel」 - 似乎Live服務器忽略了web.config中的browserCaps部分。我的開發/測試可以識別瀏覽器,但活動服務器失敗,IE8。需要與管理員的話,我已經問了在這裏進一步的問題:http://stackoverflow.com/questions/1037708 – Adrian 2009-06-24 11:32:29