Сеанс ASP.NET 2.0 и главная страница

В моей мастер-странице я устанавливаю переменную сеанса на некоторое значение, которое я получил из базы данных. Значение отображается в нижнем колонтитуле каждой страницы, поэтому оно находится на мастер-странице.

protected void Page_Load(object sender, EventArgs e)
{        
    Session["TODAY"] = value_from_DB;
}

Позже я хочу использовать это значение на других страницах, но Session["TODAY"] имеет значение null, а его значение отображается в нижнем колонтитуле.

Как я могу получить доступ к значениям сеанса на страницах, значение установлено на главной странице?


person dmateev    schedule 24.09.2009    source источник


Ответы (2)


Насколько я знаю, это будет связано с тем, что метод Page_Load страницы содержимого выполняется до метода Page_Load главной страницы, поэтому вы используете переменную сеанса до ее создания.

person IanT8    schedule 24.09.2009
comment
Другими словами: знайте и понимайте жизненный цикл вашей страницы. - person chris; 24.09.2009
comment
@IanT8 вы правы- @dbrmr см. здесь- msdn.microsoft.com/en -us/library/dct97kc3.aspx - person RichardOD; 24.09.2009

Да, вы можете использовать значение сеанса на странице, заданной в MasterPage.

Убедитесь, что Session["TODAY"] никогда не установлено в null где-либо еще в вашем приложении. Скорее всего, вы перезапишете это значение позже в жизненном цикле страницы.

person Andrew Hare    schedule 24.09.2009