Будет ли перенаправление избежать двойной публикации? - PullRequest
2 голосов
/ 17 июля 2009

Наверное, нет, но я хочу спросить. Будет ли перенаправление избежать двойной публикации? Я знаю, что есть лучшие способы избежать этого, но как происходит большинство двойных постов? Насколько я понимаю, когда текущая страница не загружается и пользователь нажимает кнопку обновления, а не щелчок мышью несколько раз. Я полагаю, что информация о перенаправлении настолько мала, что когда пользователь нажимает кнопку «Обновить», он просто пытается загрузить новую страницу и не пересылать данные POST.

Это просто очень простое и быстрое решение, я просто хотел узнать, насколько оно эффективно или нет?

Ответы [ 4 ]

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

Да, перенаправление, чтобы избежать двойной публикации, настолько распространено и настолько эффективно, что у техники есть имя " Post-Redirect-Get ". Это также сделает ваш ASP.NET код чище, так как ваши страницы не должны обрабатывать как сообщения, так и сообщения. Нет больше этого:

if (!this.IsPostBack) {
    // Do one thing for gets
} else {
    // Do something else for posts
}

Единственным недостатком является то, что он может усложнять отображение сообщений о состоянии и ошибках .

1 голос
/ 17 июля 2009

Это хорошая вещь, чтобы избежать случайной двойной публикации.

Это даже лучшая практика, и многие инфраструктуры MVC предоставляют простые способы сделать это.

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

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

Да, это работает для этой цели.

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

Я думаю, что такой подход работает в большинстве случаев успеха. Для сбоев это становится немного некрасиво.

...