Как я могу реализовать шаблон Post-Redirect-Get с ASP.NET?
Щелчок на кнопке выполняет некоторую обработку:
<asp:Button id="bbLaunch" OnCommand="bbLaunch_Click" />
Пользователь нажимает кнопку, запускается космический корабль, повторное использование веб-страницы. Если пользователь нажимает F5, они получают предупреждение:
Решение проблемы - это шаблон Post-Redirect-Get.
Каков метод, с помощью которого PRG может быть реализован в ASP.NET?
Вопрос о проблемах:
- как
<asp:Button>
выполнитьPOST
место, которое не является его первоначальной формой? - Что будет с ViewState при отправке в форму, которая не считывает состояние просмотра?
- Что происходит с ViewState при перенаправлении на "реальную" веб-форму aspx?
- ViewState принципиально несовместим с
ASP.netPost-Redirect-Get? - является ASP.NET принципиально несовместимым с Post-Redirect - Get?
- как (например, какой код) вы перенаправляетесь на "реальную" веб-форму aspx?
- как (т.е. какой URL) вы перенаправляетесь на "реальную" веб-форму aspx? В вопросе о соотношении упоминается
Response.Redirect(Request.RawUrl);
- когда (т.е. в каком обработчике событий) вы перенаправляетесь на "реальную" веб-форму aspx?
- связанные вопросы поднимают вопросы о том, как вы публикуете данные формы. Подразумевается, что HTML-формы не могут использоваться - и все данные формы должны быть добавлены в строку запроса. Это правда? Если да, то почему? Если нет, почему бы и нет? Может ли отображать данные формы в строке запроса?
- В связанном вопросе упоминается
Server.Transfer
. ИспользованиеServer.Transfer
полностью неверно и никоим образом не решает проблему Post-Redirect-Get (потому что нет перенаправления). Правильно? - какое изменение кода должно произойти в файле
aspx
илиaspx.cs
для поддержки PRG? Предположительно, по крайней мере, код должен быть заменен наPOST
где-то, кромеMyPage.aspx
.
Другими словами: Как вы выполняете Post-Redirect-Get в ASP.net?
Примечание: ASP.net(т.е. не ASP.net MVC)