我正在编写一个需要从数据库访问数据并将其显示给用户以查看和编辑的ASP.NET C#网站。它访问的具体数据取决于登录的用户,我需要多个用户同时使用该站点,同时查看和编辑不同的数据。我偶然发现了会话状态的概念,经过大量的阅读并没有那么多的理解。我遇到了一个问题。会话状态变量不起作用
在我的默认页,我这样做是为了创建一个会话变量:
Session.Add("UserData",userdata);
我也试过这样:
Session["UserData"] = userdata;
然后在后面的页面,我这样做是为了尽量叫它:
object myobject = Session["UserData"];
这给我一个错误,说Session["UserData"]
未设置为一个OBJE的实例克拉。这是每个人似乎都在使用的方法,有什么我失踪?
我的站点在IIS上配置为将会话状态模式设置为“正在处理”,但大多数人似乎都使用其web.config文件手动设置了此项。但是,当我尝试在web.config文件中执行此操作时,我总是会遇到“无法识别的配置节”。我的编译器不知道这是什么:
<sessionstate mode="inproc"/>
编辑,更详细的代码:
MyClass userdata = new MyClass();
userdata.name = "myname";
userdata.number = 5;
Session["UserData"] = userdata;
后...
MyClass mydata = (MyClass)(Session["UserData"]);
这将返回错误会话[“的UserData “] 一片空白。
你在哪里初始化userdata?你打电话时是否可能为空? – 2011-12-21 20:38:43
你有Session [“UserData”] = userdata; ,你在哪里分配用户数据,你可以粘贴代码,以便我们可以看到。 Session [“UserData”]应该工作,或者我应该说有一个值,如果您正确地分配它.. – MethodMan 2011-12-21 20:39:05
“用户数据”是psuedo代码在这里,我100%确定此变量包含数据之前我调用任何此代码。 – Andrew 2011-12-21 20:40:22