2013-05-06 53 views
2

我想創建一個新的會話,在該會話中保存在文本框中鍵入的內容。然後在另一個aspx頁面上,我想在標籤中顯示該會話。如何在C#中聲明會話變量?

我只是不確定如何開始這一點,以及放在哪裏。

我知道我將需要:

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

但我還是不能確定在哪裏把一切。

+0

我看到了這個問題,但我的並不涉及哈希表。 – Carrie 2013-05-06 21:29:51

+0

@Carrie用你的'TextBox.Text'替換'HashTable' - 中提琴! – Jesse 2013-05-07 14:52:36

回答

8

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 
} 
+0

更短得到 return(string)HttpContext.Current?.Session [「TestSessionValue」] ?? 「」; } – 2017-05-30 16:43:00