我是 ASP.NET 的新手,我遇到了一个问题。我正在尝试管理已经编写好的网站。当我到达以下行时出现此错误:
if (Session["usertype"].Equals("2"))
{
}
Session["usertype"]
已在上一页分配。在当前页面上,我丢失了所有会话变量(我在调试中检查了它)。
登录后按以下方式分配会话
Session["usertype"] = "2"
登录后页面,10秒后刷新。那是我放松会议的地方。请让我知道,这里有什么问题。
我是 ASP.NET 的新手,我遇到了一个问题。我正在尝试管理已经编写好的网站。当我到达以下行时出现此错误:
if (Session["usertype"].Equals("2"))
{
}
Session["usertype"]
已在上一页分配。在当前页面上,我丢失了所有会话变量(我在调试中检查了它)。
登录后按以下方式分配会话
Session["usertype"] = "2"
登录后页面,10秒后刷新。那是我放松会议的地方。请让我知道,这里有什么问题。
只需检查 Session 变量是否为 Null-
if( Session["usertype"] != null )
{
//Now check your condition here
}
else {
//Perform any operation
}
如果您得到NullReferenceException
,则会话值将返回为null
。您可能应该检查:
var userType = (string)Session["usertype"];
if(userType == null) {
// .. things to do if no session value
} else {
// test "2" etc
}
可能是会话状态被禁用,或者根本没有实际设置值。
你的过程超过10秒吗?您可以在 IIS中更改会话的长度。打开 IIS,点击你的网站,选择 Session State(ASP.NET 选项卡),查看 State-Server,更改 Time-out(默认值:10 秒)
您使用的是 WebForms 还是 MVC?在 WebForms 中,会话状态在页面 Init 之后才可用。