ASP.NET Как отключить повторную отправку запроса на сервер при обновлении?

StackOverflow https://stackoverflow.com/questions/1430094

  •  07-07-2019
  •  | 
  •  

Вопрос

Я разрабатываю страницу, на которой пользователи могут войти в систему и продемонстрировать некоторые функции.Я хочу, чтобы пользователь мог демонстрировать это только один раз в день.

Небольшой пример:

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

Это работало нормально, однако я понял, что когда я обновляю страницу (и подтверждаю, что хочу повторно отправить информацию), демо-версия запускается снова.

Как я могу предотвратить это?Мне нужно разрешить пользователю запускать демо-версию только один раз!

Спасибо.

Это было полезно?

Решение

Я бы посоветовал вам изменить отправку формы, чтобы использовать Опубликовать/перенаправить/получить шаблон чтобы избежать повторной отправки, если они нажмут кнопку «Обновить» на демонстрационной странице.

Кроме того, похоже, что вы должны просто изменить код в тот момент, когда он записывает запись в таблицу аудита, чтобы проверить, существует ли запись, и если да, вернуть другой результат.Хотя я бы очень осторожно относился к такому подходу.Функциональность «обновления» браузера обычно не является чем-то, что вам следует пытаться предотвратить.Что произойдет, если пользователь нажмет «Обновить» в середине демонстрации?

Другие советы

вы можете проверить не только загрузку страницы, чтобы включить/отключить кнопки, но и события кнопок, вы можете проверить, была ли эта задача уже выполнена

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top