asp.net传值session问题

问一下session传值的时候,取值的页面为什么session后面要加上tostring不加就会出错。这是为什么谢谢... 问一下session传值的时候,取值的页面为什么session后面要加上tostring 不加就会出错。这是为什么 谢谢 展开
 我来答
宣义坊的大蚂蚁
2008-12-05 · TA获得超过2831个赞
知道大有可为答主
回答量:1617
采纳率:90%
帮助的人:921万
展开全部
Session中的元素都是装箱之后的object,使用的时候需要拆箱。而ToString()是最简单的拆箱,把元素拆箱成字符串,如果原来是string类型,那么tostring的结果就是原来的字符串,如果原来是引用类型的话,tostring默认返回的是类名。
所以不建议使用tostring来完成session元素的拆箱,而是建议用如下的方式:

int value = (int)Session["Key"];
string value = (string)Session["Key"];
MyClass value = (MyClass)Session["Key"];
cloudl1983
2008-12-05 · 超过24用户采纳过TA的回答
知道答主
回答量:100
采纳率:0%
帮助的人:73.9万
展开全部
tostring是把你传过来的值转换为字符串型,不转的话就会可能因为数据类型不匹配而报错。但这也不是绝对的,要看你接收session的变量定义的什么类型。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sjyh5201
2008-12-05 · TA获得超过267个赞
知道小有建树答主
回答量:512
采纳率:0%
帮助的人:0
展开全部
因为session里存的是object类型的。
如果你要拿string类型的接 就需要。Tostring()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
闪亮的沙子
2008-12-05
知道答主
回答量:23
采纳率:0%
帮助的人:21.9万
展开全部
因为你接收传值的是用string 类型
httpsession[""] 传过来的都是object类型
类型不一样,当然会报错
如果你用一个object 类型来接收httpsession[""]
就不用tostring 也不会报错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小蕨菜
2008-12-05 · TA获得超过114个赞
知道答主
回答量:110
采纳率:0%
帮助的人:0
展开全部
接session的变量和session的类型要一致,不然肯定会出错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
88421220
2008-12-05 · TA获得超过125个赞
知道答主
回答量:150
采纳率:0%
帮助的人:0
展开全部
这样解释:
Session["变量名"]里面存储的对象类型的数据也就是Object的;
如果需要使用该值的话就需要进行类型的转换如下:
string User = Session["变量名"].toString();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式