0

可能重复:
是否有一个全局变量(跨网页)我可以在 C# WebMatrix 中使用,它确实有效?

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

当我尝试将 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 转换为数据库。

无论如何,任何能让我度过难关的帮助都会很快被接受并受到肯定。谢谢!

4

1 回答 1

-1

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

尝试

App.gAdmitsMembership = AdmitsMembership;

如上一个线程所述:Webmatrix 2:存储静态值

于 2012-09-22T09:02:07.727 回答