Проверка сеанса, если он пуст или нет
Я хочу проверить, что сеанс пуст или пуст, например, что-то вроде этого:
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
Ответы
Ответ 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
}