public void GetType(...)
{
   TypeInfo type = new TypeInfo();
   type.typeID=convert.toint32(textbox.text);
   type.typeName = textbox.Text;
   session["Tp"] = type; 
}public GetsessionType()
{
    List<TypeInfo> type = (List<TypeInfo>)session["Tp"];
    dataList1.datasourt=type;
    dataList1.dataBind();
}请各位高手们看看可以这么弄么?
List<TypeInfo> type = (List<TypeInfo>)session["Tp"];  也会说不允许强制类型转换
求解

解决方案 »

  1.   

    你保存session["Tp"] 的类型是TypeInfo ,你在取的时候的类型是List<TypeInfo>,类型都不一样。你取的时候类型是TypeInfo就可以了 
      

  2.   

    对头,楼上的哥们已经说了,你放到session和你取出来的session的值的类型不同,故报错
      

  3.   

    session["Tp"] = type;   放进去的是一个实体。List<TypeInfo> type = (List<TypeInfo>)session["Tp"]; 转换一个实体列表 (多个实体)。应该这样
    List<TypeInfo> type = new List<TypeInfo>();
    type.add((TypeInfo)session["Tp"]);
      

  4.   

    果然好了,不过又出现新的我问题了,我虽然可以添加并读取出session中的数据了,但是只有一条,添加第二条的时候就会把第一条数据顶掉,这个怎么处理?求教
      

  5.   

    引用类型的,在session取出来后,直接保存在对象里面就行了. 不用再通过session保存.
      

  6.   


      List<TypeInfo> type = new List<TypeInfo>();
     //type写数据....
      session["Tp"] = type;  
      
      //读数据
      type = (List<TypeInfo>)session["Tp"];
      //type加数据.....