0

我想取用户输入的名称,然后使用会话状态将其显示在另一个 aspx 页面上。

在用户键入名称的页面上,我拥有的代码是

Session["name"] = TextBox1.ToString(); //Store the session state in a variable called name from the text box.

Response.Redirect("page2.aspx");

现在在 page2.aspx 上,我尝试调用此变量,但似乎没有任何效果。

我在页面上有一个空标签1,所以我希望将名称存储到空标签中

Label1 = Session["name"];

错误消息是将类型对象转换为 System.Web.UI.WebControlers.Label

4

3 回答 3

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

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

有两个错误:首先,您尝试分配Label1变量,而不是标签的文本,因此出现错误。Session[key] 返回object, whileLabel1是类型System.Web.UI.WebControlers.Label

第二个 - 您已将值设置为user会话值并尝试通过username变量访问它。

于 2013-03-17T15:52:33.413 回答
1

Session["username"]是对象类型,不能通过label隐式转换分配给它。您将有一个字符串Session["username"],调用ToString()将给出,然后您可以将用户名分配给标签文本属性。

Label1.Text = Session["username"].ToString();
于 2013-03-17T15:52:31.550 回答
1

最好这样做,因为如果 value 为 null,它不会引发异常:

Label1.Text = (string)Session["username"];

如果您确定username已设置,则可以执行以下操作:

Label1.Text = Session["username"].ToString();
于 2013-03-17T15:56:31.793 回答