Ограничение представления в С#

Как ограничить предыдущую операцию после повторной отправки. например, если я нажму на одну кнопку, если я повторно отправлю (f5), эта страница обновится, все, что мы нажали ранее, будет выполняться еще раз. поэтому я не хочу выполнять еще раз. Так вы можете помочь мне решить эту проблему?

2 ответа

Вы должны прочитать о шаблоне PRG:

Post/Redirect/Get (PRG) - это шаблон проектирования веб-разработки, который предотвращает некоторые дубликаты форм, создавая более интуитивно понятный интерфейс для пользовательских агентов (пользователей). PRG реализует закладки и кнопку обновления предсказуемым способом, который не создает дубликаты форм.

Подробнее об этом здесь.

Краткое объяснение того, как это работает:

Когда веб-форма отправляется на сервер через HTTP-запрос POST, веб-пользователь, который пытается обновить ответ сервера в определенных пользовательских агентах, может повторно отправить содержимое исходного HTTP-запроса POST, что может привести к нежелательным результатам, таким как дублировать покупку в Интернете. Чтобы избежать этой проблемы, многие веб-разработчики используют шаблон PRG <a href="http://en.wikipedia.org/wiki/Post/Redirect/Get" rel="nofollow noreferrer" target="_blank">1</a> - вместо того, чтобы возвращать веб-страницу напрямую, операция POST возвращает команду перенаправления.


Вы можете рассмотреть возможность перенаправления пользователя на другую веб-страницу, чтобы последующий запрос был выполнен с использованием GET.

Цель здесь заключается в том, что действие загрузки страницы действия представления - это то, что заставляет браузер повторно обновлять. В конце концов, вы буквально просите о том же предложении действий второй раз. Перенаправившись на другую страницу, ваш запрос будет выполнен с использованием GET, а загруженная страница не будет той, которая выполняет логику отправки.

Это также известно как шаблон Post/Redirect/Get.

licensed under cc by-sa 3.0 with attribution.