Firefox和此代码的浏览器版本问题

时间:2011-12-14 21:19:14

标签: vb.net firefox

        Dim browse As HttpBrowserCapabilities
        browse = Request.Browser
        Dim browser, version As String
        browser = browse.Browser.ToString
        version = browse.Version.ToString
        If browser = "IE" Then
            If version < 6.0 Then
            pnlOldVersion.Visible = True
            UpdatePanel1.Visible = False
            UpdatePanel8.Visible = False
            Else   'do nothing
        End If

为什么此代码会导致Firefox浏览器出现问题?任何想法?

谢谢, 埃林

2 个答案:

答案 0 :(得分:1)

我不会说Visual Basic,而是根据我在其他答案中引用的错误消息:

  

[InvalidCastException:从字符串“3.6.12”到“Double”的转换无效。]

您的代码存在缺陷:您正在将字符串(由toString创建)与数字(6.0)进行比较。

适用于IE,因为您的IE版本号(可能)类似于7.0。它打破了Firefox的3.6.12(不能自动转换为数字)。

您需要将browse.Version转换为数字而不是字符串,并考虑非数字的可能性。我确信在vb.net世界中有标准的预制解决方案。

答案 1 :(得分:0)

您可以这样做:

Dim browser As HttpBrowserCapabilities = Request.Broser
Dim min As Integer = 6
Dim version As Decimal = browser.Version

If browser.Type.Substring(0, 1).Equals("I") Then 
    'browser.Type return me "InternetExplorer11"
    If version < min Then
        pnlOldVersion.Visible = True
        UpdatePanel1.Visible = False
        UpdatePanel8.Visible = False
    End If
End If