可能重复:
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”,这样当它被添加到数据库时,它将作为必要的布尔值转换为数据库,为真。
无论如何,任何帮助我完成此任务的帮助都会很快被接受并且非常感激。谢谢!
答案 0 :(得分:-1)
用于在第一页上为AppState变量赋值的语法不正确。
尝试
App.gAdmitsMembership = AdmitsMembership;
如上一个帖子中所述:Webmatrix 2: Storing static values。