本帖最后由 wangchao813 于 2009-06-22 14:48:19 编辑

解决方案 »

  1.   

    你这个是JSON应该做的事情,具体自己去查资料怎么构造JSON字符串以及前端解析JSON字符生成相应的js对象
    另外还有个简单方法,不过可能不太灵活<script>
    var myGirl = new Object();
    o.Name = '<%=Cache[parms]%>';//最好在后端做个方法,比如GetMyGirlProperty("Name"),做好出错控制。
    o.Age= <%=Cache[parms]%>;使用:
    alert(myGirl.Name);</script>
      

  2.   

    写掉了,o.Name = ' <%=Cache[parms].Name%>
      

  3.   

    我在调试的时候发现,Cache[parms];        中的obj是有name和age属性的,所以我引用var来创建匿名类,
    调试时发现属性也赋值过来了,现在唯一的问题是怎么样才能把属性取出来。
    我现在不需要json,只需要取出属性。谢谢
      

  4.   

    你要知道Cache存的是什么类型 ,然后转换了才能使用属性 不然就是object类的实例对象
      

  5.   


    还没编译的时候,编译器无法知道你的obj是什么类型,即使你用匿名类型,编译器也只有在运行的时候才能知道obje是什么类型
    所以你要想在编码的时候点出Name和Age属性,必须类型转换
      

  6.   

    我现在是想,有什么遍历方法可以来遍历var中的运行时属性呢?
      

  7.   

    直接遍历var中的属性我可以写成static,但是用到反射的话有点得不偿失了。直接类型转换也是上面的问题,其实就是懒人给自己找的个借口
      

  8.   

    由于你存到了Cache里面,它已经把你的类型强制转为object,如果你不再次类型转换的话,我实在想不到别的方法了
    等高人来回答吧
      

  9.   

    var obj =Cache[parms];        
            Response.Write(parms);
            Response.Write(obj.GetType());
    输出类型时 obj是类对象
      

  10.   

    呵呵,你这段代码不能说明任何问题,因为反射得到的是对象的真实类型,不论它被强制转换为什么类型,看看下面代码:            string str = "ojlovecd";
                object o = str;
                var obj = o;
                Response.Write(obj.GetType().Name);输出的仍然是String,不会是Object
      

  11.   

    var 又不能自动判断他以前的类型。。
    Cache返回的都是object 管你张三李四
    object的实例怎么可能调用别的类的方法。。
      

  12.   

    string a="abc";
    var str = a;object o = classobj;1,var class = classobj;2,var class = o;