0

私はMVCアプリを開発しています。

(Surface Pro で) http://www.whatbrowser.org/にアクセスすると、正しく IE 10 と表示されます。

しかし、MVC アプリにアクセスして Request.Browser.Version を出力すると、7 が返されます。

理由はありますか?Request.Browser.Version が壊れていますか?

ありがとう

4

2 に答える 2

1

これの一部はInternet Explorer ブラウザーのバージョンの問題を検出する で触れられています。

最後に知っRequest.Browserたのは、ASP.NET のインストールに付属する *.browser ファイルを使用していて、簡単に古くなってしまうことです。Microsoft はそれらの更新プログラムを頻繁にリリースしていますが、十分ではありません。現在、ブラウザー ファイルを更新しないと、IE10 で Web フォーム ページが壊れるという問題がいくつかあります。

コメントが言っているように、ブラウザの検出は非常に壊れています。ブラウザーを検出する必要がある場合は、少なくともユーザー エージェント文字列の使用を避け、使用されているブラウザーを正確に知る必要がある理由を真剣に検討してください。

于 2013-07-05T20:35:45.820 に答える
0

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

于 2013-07-05T20:47:14.837 に答える