Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Browser Back и невалидное состояние ViewState 
V
    Опции темы
whoever
Дата 7.3.2009, 01:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 5.7.2007

Репутация: нет
Всего: 1



Вопрос по поводу того, как правильно работать с ViewState и Сессией, в каких случаях что применять.
Проблема, вызвавшая вопрос, вызвана кнопкой back браузера. Например, страница загрузки файлов позволяет загрузить несколько файлов во временную папку, а после нажатия на сабмит файлы перемещаются в постоянную. Чувак нажимает сабмит, фалы переместили, мы перенаправили его на другую страницу, он нажал back и попал на страницу, вьюстейт которой хранит список уже перемещённых файлов. Жмёт сабмит снова - а файлов во временной папке уже нет.
Как решаются подобные проблемы (вместо файлов может быть работа с бд или что-то другое)?
PM   Вверх
Mymik
Дата 7.3.2009, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

Репутация: 50
Всего: 78



После того как ты переместил файлы, ты выставляй какой-нибудь флаг в Session и отчищай список файлов (кстати, а где ты его хранишь?) И соответственно, если пользователь попадает(IsPostBack == false) на страницу то сбрасывать этот флаг(который в Session). Ну а дальше уже об общей бизнес логики отталкивайся.


--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
likegift
Дата 7.3.2009, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 14.10.2008

Репутация: 1
Всего: 3



Цитата(whoever @ 7.3.2009,  04:51)
Вопрос по поводу того, как правильно работать с ViewState и Сессией, в каких случаях что применять.
Проблема, вызвавшая вопрос, вызвана кнопкой back браузера. Например, страница загрузки файлов позволяет загрузить несколько файлов во временную папку, а после нажатия на сабмит файлы перемещаются в постоянную. Чувак нажимает сабмит, фалы переместили, мы перенаправили его на другую страницу, он нажал back и попал на страницу, вьюстейт которой хранит список уже перемещённых файлов. Жмёт сабмит снова - а файлов во временной папке уже нет.
Как решаются подобные проблемы (вместо файлов может быть работа с бд или что-то другое)?

дано: 1ая страница и 2ая.

по шагам (если я прально понял):

1. выбрал файлы на 1ой странице, нажал сабмит.
(на сервер вернулась 1ая страница. из вьюстейта взяли состояния элементов и загрузили 2ую страницу)

2. юзер нажал back.
(на сервер ушел запрос 1ой страницы, сервер честно вернул ее. никаких вьюстейтов там не было, ибо не постбэк.)

в общем, надо кагбэ так:

0. при загрузке 1ой страницы проверять состояние сессии на наличие переменной с, к примеру, именами выбранных файлов.

1. выбрал файлы на 1ой странице, нажал сабмит.
(на сервер вернулась 1ая страница. из вьюстейта взяли состояния элементов и загрузили 2ую страницу)
(1.1. сохранили в сессию имена выбранных файлов)

2. юзер нажал back.
(на сервер ушел запрос 1ой страница, сервер честно вернул ее. никаких вьюстейтов там не было, ибо не постбэк.)
(2.1. зато сервер заглянул в сессию и там нашел имена файлов, которые он радостно отдал вам вместе с формой)



PM MAIL   Вверх
whoever
Дата 7.3.2009, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 5.7.2007

Репутация: нет
Всего: 1



Mymik, likegift, спасибо.

Это сообщение отредактировал(а) whoever - 7.3.2009, 22:24
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.1116 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.