web-dev-qa-db-ja.com

セッション値がnullであるか、セッションキーがasp.net mvcに存在しないかどうかを確認する方法-5

ASP.Net MVC-5アプリケーションが1つあり、アクセスする前にセッション値がnullかどうかを確認したいと思います。しかし、私はそうすることができません。

//Set
System.Web.HttpContext.Current.Session["TenantSessionId"] = user.SessionID;
// Access
int TenantSessionId = (int)System.Web.HttpContext.Current.Session["TenantSessionId"];

私はSOから多くの解決策を試しました

試み

if (!string.IsNullOrEmpty(Session["TenantSessionId"] as string))
 {
                //The code
 }

親切に私を導きます。

エラー:NULL参照

8
Unbreakable
if(Session["TenantSessionId"] != null)
{
  // cast it and use it
  // The code
}
12
Ahmed Ragheb

なので - []Indexer(クラスのメソッドと同様)として機能し、この場合、sessionnullであり、実行できませんIndexingその上に。

これを試して..

if(Session != null && Session["TenantSessionId"] != null)
{
   // code
}
2
Rahul Hendawe

NullReferenceExceptionは、null値をキャストしようとしたことが原因です。一般的に、通常はダイレクトキャストの代わりにasを使用する方がよいでしょう。

var tenantSessionId = Session["TenantSessionId"] as int?;

それは決して例外を発生させません。セッション変数が設定されていない場合、tenantSessionIdの値は単にnullになります。デフォルト値がある場合は、null合体演算子を使用して、常にsome値が存在することを確認できます。

var tenantSessionId = Session["TenantSessionId"] as int? ?? defaultValue;

次に、セッションからの値またはデフォルト値のいずれかになります。つまり、nullになることはありません。

セッション変数が直接nullかどうかを直接確認することもできます。

if (Session["TenantSessionId"] != null)
{
    // do something with session variable
}

ただし、すべての作業をセッション変数で制限して、この条件内にする必要があります。

1
Chris Pratt

セッションが空/ Nullかどうかを確認します

if(!string.IsNullOrEmpty(Session ["TenantSessionId"] as string)){

//ここにロジックのコードを記述

}

0
Pergin Sheni

C#MVCバージョン5より前で、セッションが空/ Nullかどうかを確認します。

if (!string.IsNullOrEmpty(Session["TenantSessionId"] as string))
{
    //cast it and use it
    //business logic
}

C#MVCバージョン5以上で、セッションが空/ Nullかどうかを確認します。

if(Session["TenantSessionId"] != null)
{
    //cast it and use it
    //business logic
}
0
vishpatel73