Как использовать Post / Redirect / Get a.k.a. Redirect после публикации с asp.net

Выполнение обновления после определенного действия в asp.net, кажется, заставляет их повторяться, даже если это действие не имеет смысла (подумайте о двойном удалении). Веб-способ справиться с этой ситуацией - перенаправить после публикации, чтобы получить чистую версию страницы, которую можно обновить без повторной публикации действия на веб-сервере. Как я могу это сделать с помощью ASP.NET


person minty    schedule 01.12.2008    source источник
comment
Я использую .NET Framework 2.0, но мне были бы интересны ответы, поскольку они применимы ко всем версиям платформы.   -  person minty    schedule 01.12.2008


Ответы (2)


У меня есть чувство, что я не понимаю более серьезную проблему, но вот она. В вашем событии обратной передачи:

// the post handling logic, e.g. the click event code
Response.Redirect(Request.RawUrl);
person Cristian Libardo    schedule 01.12.2008
comment
Это должно быть Response.Redirect(Request.RawUrl, false);, чтобы завершить обработку и избежать сеансов закрытия приложений и т. Д. - person GlennG; 04.05.2017

Используйте метод Server.Transfer.

У метода Server.Transfer есть второй параметр - preserveForm. Если вы установите для него значение True, используя такой оператор, как Server.Transfer ("WebForm2.aspx", True), существующая строка запроса и любые переменные формы по-прежнему будут доступны для страницы, на которую вы выполняете перенос.

http://www.developer.com/net/asp/article.php/3299641

person Din    schedule 01.12.2008
comment
Так как же это предотвратить двойное удаление или двойную отправку? / - person BobbyShaftoe; 18.12.2008
comment
@BobbyShaftoe Не будет. Вы не можете использовать Server.Transfer, поскольку P-R-G требует, чтобы клиенту был отправлен код статуса перенаправления. - person Ian Boyd; 26.11.2010