Читать «ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание» онлайн - страница 655
Эндрю Троелсен
protected void btnSetCar_Click(object sender, EventArgs e) {
Session["UserFavCar"] = txtFavcar.Text;
}
protected void btnGetCar_Click(object sender, EventArgs e) {
lblFavCar.Text = (string)Session["UserFavCar"];
}
Если выполнить приложение теперь, то информация о любимой машине в промежутке между обращениями к серверу будет сохраняться благодаря объекту HttpSessionState, обрабатываемому с помощью унаследованного свойства
Исходный код. Файлы примера SimpleStateExample размещены в подкаталоге, соответствующем главе 24.
Технологии управления состоянием ASP.NET
ASP.NET предлагает целый ряд механизмов, которые можно использовать для поддержки информации состояния в Web-приложениях. В частности, у вас на выбор есть следующие варианты.
• Использование данных состояния представлений ASP.NET.
• Использование данных состояния элементов управления ASP.NET.
• Определение переменных уровня приложения.
• Использование объектов кэширования.
• Определение переменных сеансового уровня.
• Взаимодействие с данными cookie.
Мы рассмотрим детали каждого из указанных подходов по очереди, начиная с темы состояния представлений ASP.NET.
Роль состояния представлений ASP.NET
Термин
В ASP.NET больше не требуется вручную извлекать и указывать значения, содержащиеся в HTML-элементах, поскольку среда выполнения ASP.NET автоматически создает в форме скрытое поле (__VIEWSTATE), которое включается в поток обмена между браузером и соответствующей страницей. Данные, присваиваемые этому полю, представляют собой строку в кодировке Base64, состоящую из пар имен и значений, которые характеризуют каждый элемент графического интерфейса на данной странице.
Обработчик события Init базового класса System.Web.UI.Page отвечает за чтение значений, обнаруженных в поле __VIEWSTATE, и заполнение соответствующих членов-переменных в производном классе (именно поэтому по крайней мере рискованно использовать доступ к параметрам состояния Web-элемента в контексте обработчика события Init страницы).
Точно так же перед исходящим ответом браузеру данные __VIEWSTATE используется для заполнения элементов формы, чтобы текущие значения HTML-элементов оставались такими же, какими они были до повторного обращения к серверу.