Подтвердить что ты не робот

Проверка сеанса, если он пуст или нет

Я хочу проверить, что сеанс пуст или пуст, например, что-то вроде этого:

if(Session["emp_num"] != null)
{

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

Или просто

 if(Session["emp_num"] != null)
    {

       // The code
    }

потому что иногда, когда я проверяю только:

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

Я сталкиваюсь со следующим исключением:

Исключение Null Reference

4b9b3361

Ответ 1

Используйте это, если переменная session emp_num сохранит строку:

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

Если он не хранит строку, а какой-то другой тип, вы должны просто проверить значение null до доступа к значению, как в вашем втором примере.

Ответ 2

if (HttpContext.Current.Session["emp_num"] != null)
{
     // code if session is not null
}
  • если вообще не выполняется.

Ответ 3

Вы должны проверить, что Session["emp_num"] не null, прежде чем пытаться преобразовать его в строку, в противном случае вы получите нулевой ссылочный исключение.

Я бы пошел с вашим первым примером, но вы могли бы сделать его немного более "элегантным".

Есть несколько способов, но те, которые приходят на ум, - это:

if (Session["emp_num"] is string)
{
}

или

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

Это вернет null, если переменная не существует или не является строкой.

Ответ 4

Сначала проверьте, существует ли Session["emp_num"] в сеансе.

Вы можете задать объект сеанса, если его индекс имеет значение emp_num или используйте string.IsNullOrEmpty(Session["emp_num"])

Ответ 5

Если это просто Seesion, вы можете применить Null Check, используя if(Session["Session_name"] !=null) Null if(Session["Session_name"] !=null)

но если это сеанс списка, то вам нужно применить 1 или 2

Опция 1:

    if (((List<int>)(Session["Session_name"])) != null && 
       (List<int>)Session["Session_name"])).Count > 0)

Вариант 2:

List<int> val= Session["Session_name"] as List<int>';'//Get the value'
if (val.FirstOrDefault() != null)

Ответ 6

Проверьте, является ли сеанс пустым или нет в версии С# MVC ниже 5.

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

Проверьте, является ли сеанс пустым или нет в С# MVC версии выше 5.

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