asp-classic - 应该为真的 if 语句的问题出现为假
问题描述
我们最近将一个非常旧的站点迁移到了一个新服务器,并且遇到了一个奇怪的问题。有一个简单的 if 语句,在旧服务器上应该和确实读为 true,但它不是也不知道为什么。声明如下。当我写出 invflag 时,它等于 1,这是我所期望的。
'does not trigger as true so iChk remains = ""
iChk = ""
if invflag = True then
iChk = "checked"
end if
'Works as expected
iChk = ""
if invflag = "1" then
iChk = "checked"
end if
'works as expected
iChk = ""
if invflag = 1 then
iChk = "checked"
end if
我知道我们可以简单地解决这个问题,如您所见,但我们在整个代码中散布着这些类型的语句,如果服务器或数据库有什么东西,我们可以设置这是理想的,我想我会检查一下。
解决方案
简单地转换为CBool
应该在所有情况下都可以解决问题:
If CBool(invflag) = True Then
iChk = "checked"
End If
或更好
If CBool(invflag) Then
iChk = "checked"
End If
推荐阅读
- html - 使用 Golang 将解析的 html 字符串从数据库显示到模板
- python - 递归合并字典,使具有共享键的元素组合成一个列表
- python - 自定义 Python 函数不起作用
- jmeter - 如何使用jmeter生成海量动态测试数据进行压力测试
- nmap - 无法在浏览器上正确查看 Nmap XML 输出
- java - 内部类不能有静态声明 - public static final String[]
- r - R - Keras - 错误消息
- vba - Excel VBA的数据管理
- javascript - React 似乎跳过了 for 循环
- mongodb - $limit 和 $project 用于逻辑计算