проблема asp.net с F5 после обратной передачи, потому что она делает то, что должна - PullRequest
3 голосов
/ 17 июля 2009

У меня есть веб-форма с подробностями и списком, пользователь заполняет данные в полях подробного вида, а затем нажимает кнопку «Сохранить», и на данный момент все в порядке.

Однако, если после этой операции они нажмут F5 , в БД будет вставлена ​​новая запись, поскольку повторная передача повторяется.

Кто-нибудь знает, как этого можно избежать?

1 Ответ

5 голосов
/ 17 июля 2009

Это будет то же самое для любой веб-страницы, которая использует запрос POST для своих операций.

Вы можете остановить это, используя Response.Redirect("yourpage.aspx") после события кнопки сохранения. Это отправит их на новую версию вашей страницы без публикации данных.

Еще один способ сделать так, чтобы ваша форма включала какой-то токен аутентификации, такой как сгенерированный GUID. Перед обработкой запроса на сохранение вы можете проверить, что запрос с этим GUID не был выполнен ранее.

...