2015-12-25 4 views
-3

Я пытаюсь сохранить данные в переменной сеанса, но переменная сеанса теряет свои значения после метода, в котором она назначена.Переменная сеанса не поддерживает значение

Я также попробовал альтернативный вариант создания класса и хранения значения в свойстве класса, но даже тогда я не могу сохранить значение.

Я также пробовал Viewstate. У меня есть проект Sharepoint, поэтому я не могу добавить тег сеанса с параметром тайм-аута в веб-конфигурации.

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

+0

вы декларирование и asecing сессии с его именем, а также вы хранения в массиве –

+0

сессии По крайней мере, для начала размещения [MCVE] –

+0

я предоставил ему все возможные решения, но не помечают мой ответ вверх или правильное –

ответ

0
//Declaring datatable 

DataTable dt = new DataTable(); 
//storing datatable into session in this way 

    Session.Add("emp", dt); 

    //acessing in that way 

    DataTable employee= Session["emp"] as DataTable 

в файле web.config добавить

<configuration> 
     <system.web> 
       <sessionSate mode="StateServer" cookieless="false" timeout="940"/> 
      </system.web> 
    </configuration> 
+0

Невозможно сериализовать состояние сеанса. В режиме «StateServer» и «SQLServer» ASP.NET будет сериализовать объекты состояния сеанса, и в результате не разрешаются объекты, не связанные с сериализацией, или объекты MarshalByRef. Такое же ограничение применяется, если аналогичная сериализация выполняется в пользовательском хранилище состояний сеанса в режиме «Пользовательский». –

+0

Попробовали все три варианта форматирования маркировки как сериализуемые, запись веб-конфигурации и атрибут сеанса, но все еще столкнувшись с сообщением об ошибке, которое выложено выше –

0

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

Решение Я решил проблему, выполнив мою собственную версию метода dispose, когда представление данных было полностью аннулировано.