WebMatrix C#AppState(变量?)总是在if条件变量的情况下评估为false

时间:2012-09-21 16:32:49

标签: c# if-statement conditional-statements webmatrix

  

可能重复:
  Is there a global variable (across web pages) I can use in C# WebMatrix, that actually works?

我有一个相当奇怪(对我而言)的问题。我已经测试并尝试了很多东西,并将问题追溯到一个简单的事实。

当我尝试将AppState [“uniqueName”]与字符串值进行比较时,它总是计算为false。这里有几个片段,所以你可以看到我的内容:

在第一页:

AppState["gAdmitsMembership"] = AdmitsMembership;

在第二页:

if(AppState["gAdmitsMembership"]=="true"){checkBoxes[0]="checked='checked'";}else{checkBoxes[0]="";}

正如你可以说的那样,在提交表格后保持一个复选框被检查(然后将数据备份到另一个表格中以便进行编辑)

现在,正如我所说,我已经测试了很多东西,这就是我所做的。

我将AppState [“gAdmitsMembership”]的值直接绘制到文本输入字段(在第二页中),以便查看正在测试的实际值。它确实是“真实的”,但它仍然总是等于假(我通过操纵“其他”发生的事情来确定另一个测试。

为什么这会失败if条件?

重要的是要注意,代码中没有任何地方的值是“true”一个布尔值。它始终是字符串“true”。我必须这样做,因为当我尝试:

if(AppState["gAdmitsMembership"]==true){checkBoxes[0]="checked='checked'";}else{checkBoxes[0]="";}

(仅与布尔值相同)

我收到一条错误,上面写着“==无法与对象或布尔值进行比较”或其他类似的错误。

由于这个原因,比较的字符串值必须保持为“true”,这样当它被添加到数据库时,它将作为必要的布尔值转换为数据库,为真。

无论如何,任何帮助我完成此任务的帮助都会很快被接受并且非常感激。谢谢!

1 个答案:

答案 0 :(得分:-1)

用于在第一页上为AppState变量赋值的语法不正确。

尝试

App.gAdmitsMembership = AdmitsMembership;

如上一个帖子中所述:Webmatrix 2: Storing static values