无法确定IE11中的浏览器版本

Unable to determine the browser version in IE11

我正在尝试确定我们的用户使用以下代码访问我们的应用程序的浏览器和版本:

public bool MyBrowser(HttpRequestBase request)
    {
        HttpBrowserCapabilitiesBase browser = request.Browser;
        switch (browser.Browser)
        {
            case "IE":
                {
                    if (browser.MajorVersion < 6)
                        //do something
                }
            case "Firefox":
                {
                    if (browser.MajorVersion < 3)
                        //do something
                }
            case "AppleMAC-Safari":
                {
                    if (request.UserAgent.Contains("Chrome") || browser.MajorVersion < 4)
                        return false;
                    return true;

                }

            default: return false;
       }
 }

当用户在 IE11 中打开网站时,这段代码总是返回 false,在我们迁移到 IE11 之前,这段代码工作正常。发生这种情况的原因可能是什么。请建议是否有解决方法。

您可以使用类似于下面的功能来检测 IE11。它 returns 0 对于非 IE 浏览器。

<div class="snippet" data-lang="js" data-hide="false">
<div class="snippet-code">
<pre><code> 
function ie_ver() {
  var iev = 0;
  var ieold = (/MSIE (\d+\.\d+);/.test(navigator.userAgent));
  var trident = !!navigator.userAgent.match(/Trident\/7.0/);
  var rv = navigator.userAgent.indexOf("rv:11.0");

  if (ieold) iev = new Number(RegExp.);
  if (navigator.appVersion.indexOf("MSIE 10") != -1) iev = 10;
  if (trident && rv != -1) iev = 11;

  return iev;
}


alert(ie_ver())