4

レイアウトのMVC3アプリケーションにGetawayがあります:

@if ((Request.Browser.Browser == "IE") && ((Request.Browser.MajorVersion == 7)))
{
//show some content
}
else
{
//show another content 
}

多くのユーザーから苦情があります(Internet Explorer 8を使用しているユーザー)。彼らは私のアプリからInternetExplorer7のコンテンツを見ています。Internet Explorer 7バージョンを検出する私の方法の何が問題になっていますか?アプリケーションでユーザーがInternetExplorer7バージョンを使用していることを100%確認するにはどうすればよいですか?これは特定のOSの問題である可能性がありますか?

4

2 に答える 2

14

問題は、HttpBrowserCapabilities別名Request.BrowserクラスuserAgentが、クライアント(この場合はブラウザー)に関する情報を含む要求からのヘッダーを解析することです。これは、ユーザーエージェントが簡単に変更できるため、常に100%信頼できるとは限りません。

返される値MajorVersionがわかっていて、それが十分に一貫している場合は、修正を加えることができます。または、代わりにIE8より前のブラウザーをチェックしてみることもできます(ただし、100%ではありません)。

@if ((Request.Browser.Browser == "IE") && ((Request.Browser.MajorVersion < 8)))
{
    //show IE7 content
}
else
{
    //show IE8+ content 
}
于 2012-12-12T10:01:48.193 に答える
3

バージョン番号はIEに固有である必要があります。

 if (Request.Browser.Browser == "IE" && Request.Browser.Version == "7.0") 
        { 
          //Show IE 7 content
        }
 else
  {
     // Show other than IE7 content
  }
于 2012-12-12T10:29:51.597 に答える