![]() |
|
Модераторы: gambit |
![]()
|
|
| whoever |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 5.7.2007 Репутация: нет Всего: 1 |
Вопрос по поводу того, как правильно работать с ViewState и Сессией, в каких случаях что применять.
Проблема, вызвавшая вопрос, вызвана кнопкой back браузера. Например, страница загрузки файлов позволяет загрузить несколько файлов во временную папку, а после нажатия на сабмит файлы перемещаются в постоянную. Чувак нажимает сабмит, фалы переместили, мы перенаправили его на другую страницу, он нажал back и попал на страницу, вьюстейт которой хранит список уже перемещённых файлов. Жмёт сабмит снова - а файлов во временной папке уже нет. Как решаются подобные проблемы (вместо файлов может быть работа с бд или что-то другое)? |
|||
|
||||
| Mymik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 50 Всего: 78 |
После того как ты переместил файлы, ты выставляй какой-нибудь флаг в Session и отчищай список файлов (кстати, а где ты его хранишь?) И соответственно, если пользователь попадает(IsPostBack == false) на страницу то сбрасывать этот флаг(который в Session). Ну а дальше уже об общей бизнес логики отталкивайся.
-------------------- |
|||
|
||||
| likegift |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 14.10.2008 Репутация: 1 Всего: 3 |
дано: 1ая страница и 2ая. по шагам (если я прально понял): 1. выбрал файлы на 1ой странице, нажал сабмит. (на сервер вернулась 1ая страница. из вьюстейта взяли состояния элементов и загрузили 2ую страницу) 2. юзер нажал back. (на сервер ушел запрос 1ой страницы, сервер честно вернул ее. никаких вьюстейтов там не было, ибо не постбэк.) в общем, надо кагбэ так: 0. при загрузке 1ой страницы проверять состояние сессии на наличие переменной с, к примеру, именами выбранных файлов. 1. выбрал файлы на 1ой странице, нажал сабмит. (на сервер вернулась 1ая страница. из вьюстейта взяли состояния элементов и загрузили 2ую страницу) (1.1. сохранили в сессию имена выбранных файлов) 2. юзер нажал back. (на сервер ушел запрос 1ой страница, сервер честно вернул ее. никаких вьюстейтов там не было, ибо не постбэк.) (2.1. зато сервер заглянул в сессию и там нашел имена файлов, которые он радостно отдал вам вместе с формой) |
|||
|
||||
| whoever |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 5.7.2007 Репутация: нет Всего: 1 |
Mymik, likegift, спасибо.
Это сообщение отредактировал(а) whoever - 7.3.2009, 22:24 |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Разработка под ASP.NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |