Общей проблемой в Интернете является то, что пользователь нажимает кнопку отправки формы несколько раз, поэтому сервер обрабатывает форму более одного раза. Это также может произойти, когда пользователь нажимает кнопку "Назад", отправив форму, и поэтому она снова обрабатывается.
Каков наилучший способ остановить это из ASP.NET MVC?
Возможности, которые я вижу, следующие:
- Отключить кнопку после отправки - это обходит несколько кликов, но не навигацию.
- Прямое перенаправление принимающего действия - браузеры, похоже, оставляют эти перенаправления из истории
- Поместите уникальный токен в сеанс и в форму - если они соответствуют процессу формы - если не очистить форму для новой отправки
Есть ли еще?
Существуют ли какие-либо конкретные реализации любого из них?
Я вижу, что третий вариант реализуется как ActionFilter с расширением HtmlHelper аналогичным образом с анти-подделкой.
Ожидаем услышать от вас MVC'ers.