我有一个相当奇怪的(对我来说)问题。我已经测试并尝试了很多事情,并将问题追溯到一个简单的事实。
当我尝试将 AppState["uniqueName"] 与字符串值进行比较时,它总是评估为 false。这里有几个片段,所以你可以看到我有什么:
在第一页:
AppState["gAdmitsMembership"] = AdmitsMembership;
在第二页:
if(AppState["gAdmitsMembership"]=="true"){checkBoxes[0]="checked='checked'";}else{checkBoxes[0]="";}
正如您可能会说的那样,重点是在提交表单后保持选中复选框(随后将数据以另一种形式备份以进行可能的编辑)
现在,正如我所说,我已经测试了很多东西,这就是我所做的。
我将 AppState["gAdmitsMembership"] 的值直接绘制到文本输入字段(在第二页中),以便查看正在测试的实际值是什么。它确实是“真”,但它仍然总是等同于假(我通过操纵“其他”发生的事情来确定另一个测试。
为什么这不符合 if 条件?
需要注意的是,在代码中,该值“真”不是布尔值,这一点很重要。它始终是字符串“true”。我必须这样做,因为当我尝试时:
if(AppState["gAdmitsMembership"]==true){checkBoxes[0]="checked='checked'";}else{checkBoxes[0]="";}
(同样的事情只有布尔真)
我收到一条错误消息,提示“== 无法与对象或布尔值进行比较”或类似的东西。
出于这个原因,比较的字符串值必须保持为“true”,以便在将其添加到数据库时将其作为必要的布尔值 true 转换为数据库。
无论如何,任何能让我度过难关的帮助都会很快被接受并受到肯定。谢谢!