asp.net传值session问题

来源:百度知道 编辑:UC知道 时间:2024/05/07 03:58:14
问一下session传值的时候,取值的页面为什么session后面要加上tostring 不加就会出错。这是为什么 谢谢

Session中的元素都是装箱之后的object,使用的时候需要拆箱。而ToString()是最简单的拆箱,把元素拆箱成字符串,如果原来是string类型,那么tostring的结果就是原来的字符串,如果原来是引用类型的话,tostring默认返回的是类名。
所以不建议使用tostring来完成session元素的拆箱,而是建议用如下的方式:

int value = (int)Session["Key"];
string value = (string)Session["Key"];
MyClass value = (MyClass)Session["Key"];

因为session里存的是object类型的。
如果你要拿string类型的接 就需要。Tostring()

因为你接收传值的是用string 类型
httpsession[""] 传过来的都是object类型
类型不一样,当然会报错
如果你用一个object 类型来接收httpsession[""]
就不用tostring 也不会报错

接session的变量和session的类型要一致,不然肯定会出错

sessio是一个对象,应该就是所谓的装箱拆箱了!

这样解释:
Session["变量名"]里面存储的对象类型的数据也就是Object的;
如果需要使用该值的话就需要进行类型的转换如下:
string User = Session["变量名"].toString();