我正在开发一个 MVC 应用程序。
如果我(在我的 Surface Pro 上)访问http://www.whatbrowser.org/,它会正确显示 IE 10。
但是如果我去我的 MVC 应用程序并打印出 Request.Browser.Version,它会返回 7。
知道为什么吗?Request.Browser.Version 是否损坏?
谢谢
我正在开发一个 MVC 应用程序。
如果我(在我的 Surface Pro 上)访问http://www.whatbrowser.org/,它会正确显示 IE 10。
但是如果我去我的 MVC 应用程序并打印出 Request.Browser.Version,它会返回 7。
知道为什么吗?Request.Browser.Version 是否损坏?
谢谢
其中一些内容在检测 Internet Explorer 浏览器版本问题中有所提及。
最后我知道Request.Browser
使用 ASP.NET 安装附带的 *.browser 文件,并且很容易过时。微软每隔一段时间就会向他们发布更新,但还不够频繁。目前,在没有更新浏览器文件的情况下,网页表单页面在 IE10 上中断存在一些问题。
正如评论所说,浏览器检测非常糟糕。如果您需要检测浏览器,至少避免使用用户代理字符串,并认真考虑为什么您需要确切知道所使用的浏览器。
Request.Browser.Version 并不总是返回 IE 的“正确”浏览器版本,因为包括兼容性视图、元标记等在内的许多因素。
相反,您最好检测浏览器功能。进一步阅读:http: //msdn.microsoft.com/library/3yekbd5b
作为个人喜好,最好检测操作系统而不是浏览器。IE9 及更高版本支持大多数常见的 HTML5/CSS3 功能,IE9 需要 Windows Vista 及更高版本。使用用户代理执行此操作的最佳方法是检查 Trident。如果通过浏览器或应用程序本身使用元标记启用了兼容性视图,则会返回错误的“版本”,但 Trident 仍然正确。
PS。这不是万无一失的,但这在大多数情况下都会起作用。
在这里进一步阅读 Trident:http: //msdn.microsoft.com/en-us/library/ms537503 (v=vs.85).aspx#PltToken