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浏览器出现问题?任何想法?
谢谢, 埃林
答案 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