2011-12-14 37 views
0
 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浏览器的问题?有任何想法吗?问题与Firefox和此代码的浏览器版本

感谢, 艾琳

回答

1

我不说话的Visual Basic,但你在我其他的答案引用了错误信息:

[InvalidCastException的:从字符串转换" 3.6.12 "到类型'Double'无效]

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

这适用于IE,因为你的IE的版本号是(可能)像7.0。它打破了Firefox的3.6.12(它不能被自动转换为数字)。

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

+0

如果我重写代码,以便该版本只看着如果浏览器类型=“IE” ......如果浏览器=“IE”那如果版本< 6.0然后做一些将补救我的情况? – 2011-12-14 22:47:35

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