2013-05-06 1 views
2

Я хочу сделать новый сеанс, где все, что напечатано в текстовом поле, сохраняется в этом сеансе. Затем на другой странице aspx я хотел бы отобразить этот сеанс в ярлыке.Как объявить переменную сеанса в C#?

Я просто не уверен, как это начать, и где положить все.

Я знаю, что я буду нуждаться:

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

Но я до сих пор не знаете, куда поместить все.

+0

Я видел этот вопрос, но мой не содержит hashtables .. – Carrie

+0

@Carrie Замените «HashTable» на ваш «TextBox.Text' - альт! – Jesse

ответ

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"] ?? ""; } –

 Смежные вопросы

  • Нет связанных вопросов^_^