为了账号安全,请及时绑定邮箱和手机立即绑定

关于Session[..]返回的变量的是什么类型?

关于Session[..]返回的变量的是什么类型?

POPMUISE 2019-03-22 15:14:11
我在一个页面输入用户名和密码,然后用Session传递他们到另外一个页面,在那里判断是否用户密码是否正确,是则宣示欢迎该用户。但是:if ( Session["Name"]=="user" && Session["password"]== "123"){Label1.Text = "欢迎进入!" + Session["Name"];Response.Write(Session["Name"]);}(1) if总是不为真,我明明是输入user和123 ?是Session类型不是字符串吗?(2 ) 我直接Label1.Text =Session["Name"];总是不对,好像提示类型不匹配,写为Label1.Text = "欢迎进入!" + Session["Name"];却没问题?
查看完整描述

4 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

session是一个object,使用时注意类型转换。
Session["Name"].ToString()=="user"就对了
第二个问题也是同样道理,Label1.Text =Session["Name"].ToString()

至于最后一个问题,一个字符串和一个object类型进行运算(直接运算是不可能的)系统会把object自动转换为string型,再进行运算

查看完整回答
反对 回复 2019-03-27
?
千巷猫影

TA贡献1829条经验 获得超7个赞

(1)Session 中可以存任何object类型的变量

Label1.Text =Session["Name"]; 如果这么写应该报的错是"不能将object类 型隐式转换成string类型....",因为你在直接赋值的时候是Session是将"user"和"123"当成object 了

这样写就对了:Label1.Text =Session["Name"].ToString();

(2)C# 中有自动转换类型的功能(比如 "123"+123="123123" 而不是 246)
所以 Label1.Text = "欢迎进入!" + Session["Name"]; 中的Session是被自动转换成了string类型

查看完整回答
反对 回复 2019-03-27
?
慕慕森

TA贡献1856条经验 获得超17个赞

session 存的时object类型.使用时要转换成具体类型.
if ( Session["Name"].ToString()=="user" && Session["password"].ToString()== "123")

Label1.Text =Session["Name"].ToString();
写为Label1.Text = "欢迎进入!" + Session["Name"];
没问题是因为存在了隐式转换,等价于
Label1.Text = "欢迎进入!" + Session["Name"].ToString();

查看完整回答
反对 回复 2019-03-27
  • 4 回答
  • 0 关注
  • 462 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信