How to check if session value is null or session k

2019-06-22 12:17发布

I have one ASP.Net MVC - 5 application and I want to check if the session value is null before accessing it. But I am not able to do so.

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

I tried many solutions from SO

Attempt

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

Kindly guide me.

Error: NULL Reference

3条回答
叛逆
2楼-- · 2019-06-22 12:26

As [] is act as Indexer (like a method on the class) and in this case, session is null and you cannot perform Indexing on it.

Try this..

if(Session != null && Session["TenantSessionId"] != null)
{
   // code
}
查看更多
▲ chillily
3楼-- · 2019-06-22 12:31

The NullReferenceException comes from trying to cast a null value. In general, you're usually better off using as instead of a direct cast:

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

That will never raise an exception. The value of tenantSessionId will simply be null if the session variable is not set. If you have a default value, you can use the null coalesce operator to ensure there's always some value:

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

Then, it will either be the value from the session or the default value, i.e. never null.

You can also just check if the session variable is null directly:

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

However, you would need to confine all your work with the session variable to be inside this conditional.

查看更多
Emotional °昔
4楼-- · 2019-06-22 12:37
if(Session["TenantSessionId"] != null)
{
  // cast it and use it
  // The code
}
查看更多
登录 后发表回答