asp.net中的Cookie和会话状态

时间:2013-03-17 15:50:51

标签: c# asp.net

我想取用户输入的名称,然后使用会话状态在另一个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

3 个答案:

答案 0 :(得分:2)

Session["name"] = TextBox1.Text.ToString();    

Label1.Text = Session["name"].ToString()

有两个错误:首先,您尝试分配Label1变量,而不是标签的文本,因此您得到了错误。 Session[key]返回objectLabel1类型为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();