2012-09-21 21 views
0

可能重複條件:
Is there a global variable (across web pages) I can use in C# WebMatrix, that actually works?WebMatrix的C#屆時AppState(變量?)一直在評估爲false如果與字符串變量

我有一個相當奇怪的(對我)的問題。我已經測試並嘗試了很多東西,並將問題歸結爲一個簡單的事實。

當我嘗試將一個AppState [「uniqueName」]與一個字符串值進行比較時,它總是計算爲false。這裏有幾個片段,所以你可以看到我有什麼:

在第一頁:

AppState["gAdmitsMembership"] = AdmitsMembership; 

在第二頁:

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

正如你可能知道的一點是在提交表單後檢查複選框(並隨後將數據以另一種形式備份以進行可能的編輯)

現在,正如我所說的,我已經測試了很多東西,這是wh在我做了。

我將AppState [「gAdmitsMembership」]的值直接繪製到文本輸入字段(在第二頁中),以查看測試的實際值是什麼。這確實是「真」,但它仍然總是等同於假(我與另外一個測試來確定通過操縱與「其他」會發生什麼。

這是爲什麼失敗的,如果條件?

是非常重要的。需要注意的是無處在的代碼是這個值「真」一個布爾值始終是字符串「true」我必須這樣做,這樣一來,因爲當我嘗試:

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

(同一只件事布爾值true)

我收到一個錯誤,說'== can不能與對象或布爾值進行比較「或者與之相關的東西。

由於這個原因,比較的字符串值必須保持爲「true」,以便當它被添加到數據庫時,它將被轉換爲數據庫,作爲必要的布爾值true。

無論如何,任何幫助,讓我通過這將很快被接受,並絕對讚賞。謝謝!

回答

-1

用於爲第一頁上的AppState變量賦值的語法不是正確的。

App.gAdmitsMembership = AdmitsMembership; 

嘗試在此之前的線程指出:Webmatrix 2: Storing static values

+0

您可以使用任一語法來設置和檢索全局變量。 –

+0

@GmG確實,邁克是對的。問題在於AppState變量被引用爲對象,爲了比較它們,需要進行投射。那就是:(字符串)AppState [「gAdmitsMembership」]。但是請注意,如果我需要的值與其他任何東西(字符串除外)一樣,我將不得不通過(我認爲)通過將AppState變量分配給新對象變量來「拆箱」的笨重過程,然後用它來比較然後重新分配AppState變量。 – VoidKing