Главное меню

О СПОСОБАХ РЕАЛИЗАЦИИ VIEWSTATE В ЯЗЫКЕ ПРОГРАММИРОВАНИЯ C# PDF Печать E-mail
Автор: Широков Р.Д., Гильмутдинов В.Я., Тазетдинов Б.И.   
01.06.2020 05:00


О СПОСОБАХ РЕАЛИЗАЦИИ VIEWSTATE В ЯЗЫКЕ ПРОГРАММИРОВАНИЯ C#

 

Широков Р.Д., Гильмутдинов В.Я., Тазетдинов Б.И.

БФ БашГУ, г. Бирск, РБ


В клиент-серверных приложениях возникает необходимость хранения данных как на стороне сервера, так и на стороне клиента. Одним из таких способов является состояние представления ViewState.


Подобно большинству опций для управления состоянием в ASP.NET, в основе состояния представления лежит словарная коллекция, в которой каждый элемент индексируется с помощью уникального строкового имени.


У ViewState'а есть индексатор, который принимает строку как ключ и любой объект как значение. Например, взгляните на следующий фрагмент кода[1]:


ViewState["Example1"] = 123.45M; // сохраняем decimal

ViewState["Example2"] = "abc"; // сохраняем string

ViewState["Example3"] = DateTime.Now; // сохраняемDateTime


Этот код помещает в коллекцию ViewState значение 1 (точнее, целое число, которое содержит значение 1) и присваивает ему описательное имя Counter. Если в коллекции ViewState в текущий момент нет элемента с именем Counter, он будет добавлен в нее автоматически. Если элемент с таким именем уже существует, он будет заменен [1].


Для извлечения значения используется имя ключа. Извлеченное значение также должно быть приведено к соответствующему типу данных. Этот дополнительный шаг является обязательным, потому что в коллекции ViewState все элементы относятся к базовому типу Object, который позволяет хранить в ней данные любого типа [1].


Ниже показан код, который извлекает значение Counter и преобразует его в целое число[1]:


decimal.Example1;

if (ViewState[“Example1”]!=null)

Example1=(decimal)ViewState[“Example1”];


Генерации исключения NullReferenceException возникает при попытке отыскать значение, отсутствующее в коллекции.


В состоянии представления можно сохранять как собственные объекты, так и другие типы данных. ASP.NET позволяет преобразовать элементы в поток байтов, чтобы его можно было добавить в скрытое поле страницы(сериализация)[1,2]. Также ASP.NET позволяет отслеживать изменения объектов хранимых с помощью коллекции ViewState это реализуется с помощью Trace. Которая позволяет выборочно отключать объекты “трасировки”[1,2].


Таким образом, состояние представления можно использовать как при обучении (это связано с простотой ее реализации), так и при написании крупных проектов в частности многостраничных сайтов, web-приложений.

Литература


1.     Электронный ресурс professorweb.ru. [сайт]:  https://professorweb.ru/my/ASP_NET/base/level5/5_1.php

2.     Microsoft ASP.NET 3.5 с примерами на C# 2008 и Silverlight 2 для профессионалов [текст] / Мэтью Мак-Дональд, Марио Шпушта ; [пер. с англ. Я. П. Волковой, Д. Я. Иваненко, Н. А. Мухина]. - 3-е изд. - Москва [и др.] : Вильямс, 2009. - 1403 с. : ил. + 1 эл. опт.диск (CD-ROM). - (TheExpert'svoicein NET) (Профессионалам от профессионалов). - Предм. указ.: с. 1397-1403. - ISBN 978-5-8459-1543-6 : Б. ц.



Обновлено 08.12.2020 10:36
 
Яндекс.Метрика