私は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 ファイルを使用していて、簡単に古くなってしまうことです。Microsoft はそれらの更新プログラムを頻繁にリリースしていますが、十分ではありません。現在、ブラウザー ファイルを更新しないと、IE10 で Web フォーム ページが壊れるという問題がいくつかあります。
コメントが言っているように、ブラウザの検出は非常に壊れています。ブラウザーを検出する必要がある場合は、少なくともユーザー エージェント文字列の使用を避け、使用されているブラウザーを正確に知る必要がある理由を真剣に検討してください。
Request.Browser.Version は、互換性ビュー、メタ タグなどを含む多くの要因により、常に IE の「正しい」ブラウザ バージョンを返すとは限りません。
代わりに、ブラウザの機能を検出する方がよいでしょう。ここでさらに読む:http://msdn.microsoft.com/library/3yekbd5b
個人的な好みとしては、ブラウザではなく OS を検出するのが最善でしょう。一般的な HTML5/CSS3 機能のほとんどは IE9 以降でサポートされており、IE9 には Windows Vista 以降が必要です。ユーザー エージェントを使用してこれを行う最善の方法は、トライデントを確認することです。ブラウザまたはアプリ自体のメタ タグを使用して互換表示が有効になっている場合、間違った「バージョン」が返されますが、Trident は正しいままです。
PS。これは絶対確実というわけではありませんが、ほとんどの場合はこれでうまくいきます。
ここでトライデントについてさらに読む: http://msdn.microsoft.com/en-us/library/ms537503(v=vs.85).aspx#PltToken