-1

我是 ASP.NET 的新手,我遇到了一个问题。我正在尝试管理已经编写好的网站。当我到达以下行时出现此错误:

if (Session["usertype"].Equals("2"))
{

}

Session["usertype"]已在上一页分配。在当前页面上,我丢失了所有会话变量(我在调试中检查了它)。

登录后按以下方式分配会话

Session["usertype"] = "2"

登录后页面,10秒后刷新。那是我放松会议的地方。请让我知道,这里有什么问题。

4

4 回答 4

2

只需检查 Session 变量是否为 Null-

     if( Session["usertype"] != null )
    {
         //Now check your condition here
    }
   else {
           //Perform any operation
        }
于 2013-02-13T14:17:24.527 回答
1

如果您得到NullReferenceException,则会话值将返回为null。您可能应该检查:

var userType = (string)Session["usertype"];
if(userType == null) {
    // .. things to do if no session value
} else {
    // test "2" etc
}

可能是会话状态被禁用,或者根本没有实际设置值。

于 2013-02-13T14:01:52.883 回答
0

你的过程超过10秒吗?您可以在 IIS中更改会话的长度。打开 IIS,点击你的网站,选择 Session State(ASP.NET 选项卡),查看 State-Server,更改 Time-out(默认值:10 秒)

于 2013-02-13T15:16:24.523 回答
0

您使用的是 WebForms 还是 MVC?在 WebForms 中,会话状态在页面 Init 之后才可用。

于 2013-02-13T14:02:10.367 回答