我目前正在创建一个网页,我想将一个与网站当前访问者相关的对象转移到另一个页面。我选择使用Session项执行此操作。但似乎有一个问题,我在一个页面上声明它的价值如下:
Session["CurrentAccount"] = new Account(tb_username.text, tb_password.text);
想要在另一个页面上检索这些数据:
Account currAccount = (Account)Session["CurrentAccount"];
每当我尝试这样做时,就会发生nullreferenceexception。 Account类未标记为可序列化。这两个页面都在同一个应用程序下运行。
编辑:我试图做同样的事情,但是将常规字符串绑定到会话,这也不起作用。
答案 0 :(得分:2)
Serializable仅计算SQL Session。将它放入会话时会引发异常。
直接将会话分配给“新对象”时遇到了同样的问题。首先尝试创建实例,然后将实例分配给会话!
答案 1 :(得分:0)
确保您已启用读/写会话。
答案 2 :(得分:-3)
我已经弄清楚出了什么问题,显然你不能将自定义对象存储到会话中,但问题完全相同,但用常规字符串替换了Account,它确实有效。谢谢你的帮助。
TL; DR您显然无法在会话中存储标准对象以外的对象。