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