我想取用户输入的名称,然后使用会话状态在另一个aspx页面上显示。
在用户输入名称的页面上,我的代码是
Session["name"] = TextBox1.ToString(); //Store the session state in a variable called name from the text box.
Response.Redirect("page2.aspx");
现在在page2.aspx上我试过调用这个变量,但似乎没什么用。
我在页面上有一个空的label1,所以我希望将名称存储到空标签
中Label1 = Session["name"];
错误消息是转换类型对象到System.Web.UI.WebControlers.Label
答案 0 :(得分:2)
Session["name"] = TextBox1.Text.ToString();
Label1.Text = Session["name"].ToString()
有两个错误:首先,您尝试分配Label1
变量,而不是标签的文本,因此您得到了错误。 Session[key]
返回object
,Label1
类型为System.Web.UI.WebControlers.Label
第二个 - 您已将值设置为user
会话值,并尝试通过username
变量访问它。
答案 1 :(得分:1)
Session["username"]
是对象类型,无法使用隐式转换分配给label
。您将在Session["username"]
中添加一个字符串,并且调用ToString()
即可为您提供标签文本属性的用户名。
Label1.Text = Session["username"].ToString();
答案 2 :(得分:1)
最好这样做,因为如果value为null,它不会抛出异常:
Label1.Text = (string)Session["username"];
如果您确定username
已设置,则可以执行此操作:
Label1.Text = Session["username"].ToString();