ASP では、初期化されていないセッション変数が空です。セッション値を確認して値を削除する正しい方法は次のとおりです。
IF NOT IsEmpty(Session("myVar")) THEN
' Go ahead and use Session("myVar")
...
' Now if we're all done with myVar then remove it:
Session.Contents.Remove("myVar")
END IF
Application 変数と Session 変数が通常= ""
使用後に設定されるコードベースを継承しました。値のすべてのテストは(Sessions("myVar") = "")
. このテストは、Session 変数が宣言されていない場合に機能するように見えます...または、運が悪かっただけかもしれません。
空の文字列との比較を使用してセッション変数をテストしても安全ですか? つまり、次の方法は、上記の正しい方法と「実質的に同じ」でしょうか?
IF Session("myVar") <> "" THEN
' Go ahead and use Session("myVar")
...
' Now if we're all done with myVar then blank it:
Session("myVar") = ""
END IF
または、次のようにコードベースをリファクタリングする必要があります。
- セッション変数が設定されているかどうかを判断するすべてのテストは、次の形式です。
IsEmpty(Session("myVar"))
- すべてのセッション変数は
Remove
d であり、設定されていません= ""
か?