Функция ASP.NET ViewState иногда может быть обоюдоострым мечом. Я полагаюсь на это на большинстве своих проектов и значительно ускоряет разработку.ASP.NET ViewState postback с обновлением страницы и закладками
Моя проблема заключается в том, что иногда пользователи будут пытаться обновить страницу, которая приведет к потере изображения в представлении, в противном случае пользователь может захотеть добавить закладку на страницу, но при возврате состояния просмотра будет потеряно.
Современные браузеры будут показывать глупые диалоговые окна, когда пользователь попытается обновить страницу, которая является результатом операции POST (например, asp postback), которая нежелательна вообще.
Интересно, что их способ продолжить использование ViewState и модели обратной передачи, но без недостатка диалогового окна обновления. (и, если возможно, запишите страницу.)
Примером того, что я могу сделать, является наличие рядом с ними страницы с записями и флажками, у пользователя есть возможность проверить все записи, которые они хотят удалить, а затем нажмите кнопку «Удалить». После того, как пользователь нажимает на удаление, анализы анализируются на сервере, а на новой странице отображаются все записи, которые были выбраны с помощью кнопки подтверждения подтверждения. Теперь, если пользователь нажимает кнопку «Обновить», он получает эту глупую коробку, чтобы подтвердить, хотят ли они отправлять сообщения или нет.
Я понимаю, что ViewState является результатом использования модели Post Back, что означает, что большинство страниц asp.net являются результатом операции POST, но мне интересно, существуют ли какие-либо способы ее использования.
обходные, что я думал, может работать:
В случае Page_Unload сохранить ViewState в сессии с уникальным идентификатором и перенаправлять пользователя на той же странице с уникальным идентификатором в качестве параметра строки запроса, после загрузки страницы с уникальный идентификатор в URL-адресе, который загружается из сеанса просмотра и вводится на текущую страницу. Такой метод позволит пользователю обновить страницу и всегда возвращать те же результаты.
P.S. Я понимаю, что я могу использовать Response.Redirect()
и/или запрос строки, но я хочу использовать простоту ViewState
+1 для «Мое предложение - не бороться с инструментами». Если инструмент не подходит для работы, найдите тот, который – Dean 2012-12-21 05:24:48