Я хочу запретить клиентам доступ к маршруту Home / Index, когда они не вошли в систему. Поэтому мой код здесь:
@{
Layout = null;
if (Session["userId"]==null)
{
Response.Redirect(Url.Action("Index","Login"));
}
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>QIndex</title>
</head>
<body>
<div>
<h1>Profile</h1>
<h2>Hello @Session["userName"].ToString() </h2>
<a href=@Url.Action("LogOut","Login")>خروج</a>
</div>
</body>
</html>
Проблема в том, что когда я исключаю @Session["userName"].ToString()
, все становится хорошо. Но когда это не устранено, в этой строке возникает ошибка System.NullReferenceException: 'Object reference not set to an instance of an object.'
. Я установил точку останова на if (Session["userId"]==null)
. Я понял, что компилятор переходит к <h2>Hello @Session["userName"].ToString() </h2>
, прежде чем проверяет оператор if, а затем возвращается к if.