Request.Browser.Version在Surface Pro上为IE返回7?

时间:2013-07-05 20:20:10

标签: c# asp.net-mvc

我正在开发一个MVC应用程序。

如果我(在我的Surface Pro上)转到http://www.whatbrowser.org/,它会正确地说IE 10。

但是,如果我转到我的MVC应用程序并打印出Request.Browser.Version,它将返回7.

知道为什么吗? Request.Browser.Version被破坏了吗?

由于

2 个答案:

答案 0 :(得分:1)

Detect Internet explorer browser version problems中提到了其中一些内容。

最后我知道Request.Browser使用ASP.NET安装附带的* .browser文件,并且很容易过时。 Microsoft经常发布更新,但不够频繁。目前,webform pages breaking on IE10存在一些问题,但没有更新的浏览器文件。

就像评论所说,浏览器检测非常破碎。如果您需要检测浏览器,至少不要使用用户代理字符串,并认真考虑为什么您需要确切知道使用的浏览器。

答案 1 :(得分:0)

Request.Browser.Version并不总是返回IE的'正确'浏览器版本,因为包括兼容性视图,元标记等在内的许多因素。

最好不要检测浏览器功能。进一步阅读:http://msdn.microsoft.com/library/3yekbd5b

作为个人偏好,最好检测操作系统而不是浏览器。 IE9及更高版本支持大多数常见的HTML5 / CSS3功能,IE9需要Windows Vista及更高版本。使用用户代理执行此操作的最佳方法是检查三叉戟。如果通过浏览器启用兼容性视图或应用程序本身使用元标记,则返回错误的“版本”但三叉戟保持正确。

PS。这不是万无一失的,但大部分时间都可以使用。

在此处进一步阅读三叉戟:http://msdn.microsoft.com/en-us/library/ms537503(v=vs.85).aspx#PltToken