2

我目前正在创建一个网页,并且我想将与该站点的当前访问者相关的一个对象转移到另一个页面。我选择使用 Session 项来执行此操作。但似乎有一个问题,我在这样的一页上声明它的价值:

Session["CurrentAccount"] = new Account(tb_username.text, tb_password.text);

并希望在另一个页面上检索这些数据,如下所示:

Account currAccount = (Account)Session["CurrentAccount"];

每当我尝试这样做时,都会发生 nullreferenceexception。Account 类未标记为可序列化。并且两个页面都在同一个应用程序下运行。

编辑:我尝试做同样的事情,而是将常规字符串绑定到会话,这也不起作用。

4

3 回答 3

2

可序列化仅适用于 SQL 会话。这将在将其放入会话时引发异常。

直接将会话分配给“新对象”时,我遇到了同样的问题。尝试先创建实例,然后将实例分配给您的会话!

于 2012-06-07T18:30:57.840 回答
0

确保您已启用读/写会话。

看到这个:http: //msdn.microsoft.com/en-us/library/system.web.configuration.pagessection.enablesessionstate.aspx

于 2012-06-07T18:29:04.047 回答
-3

我已经弄清楚出了什么问题,显然您无法将自定义对象存储到会话中,但问题完全相同,但将 Account 替换为常规字符串,它确实有效。谢谢你的帮助。

TL;DR 您显然不能在会话中存储标准对象以外的对象。

于 2012-06-07T18:48:14.443 回答