重複の可能性:
実際に機能する C# WebMatrix で使用できるグローバル変数 (Web ページ全体) はありますか?
私はかなり奇妙な(私にとって)問題を抱えています。私は多くのことをテストして試し、問題を 1 つの単純な事実に突き止めました。
AppState["uniqueName"] を文字列値と比較しようとすると、常に false と評価されます。私が持っているものを見ることができるように、ここにいくつかのスニペットがあります:
最初のページ:
AppState["gAdmitsMembership"] = AdmitsMembership;
2 ページ目:
if(AppState["gAdmitsMembership"]=="true"){checkBoxes[0]="checked='checked'";}else{checkBoxes[0]="";}
おそらくおわかりのように、フォームを送信した後もチェックボックスをオンにしておく必要があります (その後、データを別のフォームに戻して編集できるようにします)。
今、私が述べたように、私は多くのことをテストしました。
テストされている実際の値を確認するために、AppState["gAdmitsMembership"] の値を (2 ページ目の) テキスト入力フィールドに直接プロットしました。それは確かに「true」でしたが、それでも常に false と同等です (「else」で何が起こるかを操作することにより、別のテストで判断しました。
これがif条件に失敗するのはなぜですか?
コードのどこにも、この値がブール値「true」ではないことに注意することが重要です。これは常に文字列 "true" です。私がしようとするとき、私はこのようにしなければなりません:
if(AppState["gAdmitsMembership"]==true){checkBoxes[0]="checked='checked'";}else{checkBoxes[0]="";}
(boolean true のみで同じこと)
「== はオブジェクトまたはブール値と比較できません」というエラーが表示されます。
このため、比較された文字列値は「true」のままにしておく必要があります。これにより、データベースに追加されたときに、必要なブール値 true としてデータベースに変換されます。
とにかく、これを乗り越えるための助けはすぐに受け入れられ、間違いなく感謝されます. ありがとう!