如何在C#中声明会话变量?

我想创建一个新会话,在该会话中保存文本框中输入的内容。 然后在另一个aspx页面上,我想在标签中显示该会话。

我只是不确定如何开始这个,以及放置一切的地方。

我知道我需要:

protected void Page_Load(object sender, EventArgs e) { if (Session["newSession"] != null) { //Something here } } 

但我仍然不确定在哪里放一切。

newSession是一个很差的Session变量名。 但是,您只需使用索引器,就像您已经完成的那样。 如果你想提高可读性,你可以使用一个属性,甚至可以是静态的。 然后,您可以在第二页的第一页上访问它而不使用它的实例。

第1页(或任何你喜欢的地方):

 public static string TestSessionValue { get { object value = HttpContext.Current.Session["TestSessionValue"]; return value == null ? "" : (string)value; } set { HttpContext.Current.Session["TestSessionValue"] = value; } } 

现在您可以从任何地方获取/设置它,例如在TextChanged -handler的第一页上:

 protected void TextBox1_TextChanged(Object sender, EventArgs e) { TestSessionValue = ((TextBox)sender).Text; } 

并在第二页上阅读:

 protected void Page_Load(Object sender, EventArgs e) { this.Label1.Text = Page1.TestSessionValue; // assuming first page is Page1 }