发送会话以查看 Asp.Net MVC 时出现问题
Problem in sending session to view at Asp.Net MVC
我想阻止客户端在未登录时访问路由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)
上设置了一个断点。我意识到编译器在检查 if 语句之前转到 <h2>Hello @Session["userName"].ToString() </h2>
然后 returns 到 if.
只需删除 .ToString()
。它应该在没有它的情况下正确呈现字符串。
我想阻止客户端在未登录时访问路由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)
上设置了一个断点。我意识到编译器在检查 if 语句之前转到 <h2>Hello @Session["userName"].ToString() </h2>
然后 returns 到 if.
只需删除 .ToString()
。它应该在没有它的情况下正确呈现字符串。