2013-07-05 17 views
0

我正在開發一個MVC應用程序。對於Surface Pro上的IE,Request.Browser.Version返回7?

如果我(對我的面臨)去http://www.whatbrowser.org/它正確地說,IE 10

但是,如果我去我的MVC應用程序,並打印出Request.Browser.Version,它返回7

任何想法爲什麼? Request.Browser.Version是否被破壞?

感謝

+8

約瀏覽器檢測一切碎= /。 – jeremy

+2

從我讀到的,IE11甚​​至不會註冊爲IE了。 –

+0

使用功能檢測,而不是瀏覽器版本檢測。你真的不應該關心客戶端是否使用IE版本24.你應該關心的是這個特定的瀏覽器是否支持你試圖在你的網站上實現的功能。 –

回答

1

一些這在Detect Internet explorer browser version problems上觸摸。

最後我知道Request.Browser使用了隨ASP.NET安裝附帶的* .browser文件,並且很容易過時。微軟每隔一段時間都會發布一次更新,但並不常見。目前沒有更新的瀏覽器文件,webform pages breaking on IE10有一些問題。

就像評論所說,瀏覽器檢測非常破碎。如果您需要檢測瀏覽器,至少應避免使用用戶代理字符串,並且認真考慮爲什麼您需要確切地知道使用哪種瀏覽器。

0

Request.Browser.Version並不總是返回,因爲許多因素,包括兼容性視圖,meta標籤等的IE瀏覽器的「正確」的瀏覽器版本

你會好起來的檢測瀏覽器的功能來代替。在這裏進一步閱讀:http://msdn.microsoft.com/library/3yekbd5b

作爲個人喜好,最好是檢測操作系統,而不是瀏覽器。大多數常見的HTML5/CSS3功能在IE9及更高版本中均受支持,IE9需要Windows Vista及更高版本。使用用戶代理執行此操作的最佳方法是檢查三叉戟。如果通過瀏覽器啓用兼容性視圖或應用程序本身使用元標記,則會返回錯誤的「版本」,但三叉戟仍然正確。

PS。這不是簡單的證明,但是這在大多數情況下都會起作用。

進一步閱讀有關三叉戟這裏:http://msdn.microsoft.com/en-us/library/ms537503(v=vs.85).aspx#PltToken

相關問題