首先要
null != am is true

解决方案 »

  1.   

    很感谢您的回复,但是am确实不为null啊,可能是别的什么原因吗?
      

  2.   

    你傻呀,不知道am是三个值么?Guid   UserType     UserName
    既然你用了AccountModel,干嘛还回来用session?先把am输出,看看是什么样的值,然后利用分割字符串函数进行分割,再利用foreach、数组将Guid、UserType、UserName表达出来,最后用赋值给session。
      

  3.   

    LZ,你的Account是什么?有没有定义
      

  4.   

    亲 您要把对象系列化。增加[Serializable]为这个类。
      

  5.   

    很感谢您的回复,但是am确实不为null啊,可能是别的什么原因吗?
    首先,未将对象引用设置到对象的实例这个错误肯定是某个变量引发了空指针异常。
    至于具体的,我不太清楚。
    你可以调试一下,看看那里null了。
      

  6.   

    我就觉得没问题。我实验了下 没问题。不知道你是怎么写的 能贴出代码么?public partial class SessionTestaspx : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            AccountModel am = new AccountModel();
            am.Guid = "click";
            Session["Account"] = am;
        }    public void btn_click(object sender, EventArgs e) 
        {
            btn.Text =((AccountModel)Session["Account"]).Guid.ToString();
        }    public class AccountModel
        {
            public string Guid { get; set; }
            public UserType UserType { get; set; }
            public string UserName { get; set; }
        }
    }然后运行正常 按钮如下:点击后改变值
      

  7.   

     AccountModel am = new AccountModel();
            am.Guid = "click";
            Session["Account"] = am;
     am= (AccountModel) session["Account"];
      

  8.   

    存入session里面的对象需要支持序列化[Serializable]
      

  9.   


    第一点:别动不动骂人好吗第二点:我知道am是三个值啊第三点:都说了是保存用户信息,当然是其他页面里也要用到啊,不然我多此一举存Session里干嘛?第四点:1L已经说过了,都说了am完全没问题,对应值也是保存好了的,而且我也说了,是要直接向Session里保存类的实例,您说的把Guid、UserType、UserName表达出来再赋值给Session,感觉Session里存的就不是一个对象了啊另外:错误找到了,是忘了加IRequiresSessionState接口,不过还是很感谢大家的热心回复
      

  10.   


    第一点:别动不动骂人好吗第二点:我知道am是三个值啊第三点:都说了是保存用户信息,当然是其他页面里也要用到啊,不然我多此一举存Session里干嘛?第四点:1L已经说过了,都说了am完全没问题,对应值也是保存好了的,而且我也说了,是要直接向Session里保存类的实例,您说的把Guid、UserType、UserName表达出来再赋值给Session,感觉Session里存的就不是一个对象了啊另外:错误找到了,是忘了加IRequiresSessionState接口,不过还是很感谢大家的热心回复我说这么一个赋值怎么会有问题哟 还专门做了实验都没事。原来是IrequiresSessionsState借口没加。。