Найдите место, которое отправляет форму в ASP .NET - PullRequest
0 голосов
/ 27 июля 2010

У меня есть форма на странице ASP .NET с событием onclick кнопки, прикрепленным к функции doPostBack. Однако, когда я нажимаю эту кнопку, форма отправляется дважды. Отладчик на стороне сервера дважды вводит Page_Load, Fiddler записывает два aspx-запроса и т. Д., Перенаправлений 302 и т. Д. Нет, это довольно простая страница.

Когда я устанавливаю точку останова в функции __doPostBack, она также вызывается один раз (возможно, это просто иллюзия).

Есть ли возможность отладить клиентскую сторону еще глубже, чтобы найти проблему?

Спасибо, Павел

Ответы [ 3 ]

1 голос
/ 28 июля 2010

Хорошо.получил: input type = "image" имел

onclick="__doPostBack(.....)" 

Когда я изменил его на:

onclick="_doPostBack(...); return false;"

и проблема с двумя запросами ушла.Fiddler записал только один запрос, Page_Load вызывается один раз, и все аккуратно.

Так что будьте осторожны при использовании элементов HTML, которые вызывают автоматическую отправку формы при нажатии;)

Спасибо, Павел

1 голос
/ 27 июля 2010

Вы подключаете обработчики событий вручную? Если это так, вы должны проверить, если AutoEventWireup = "true" в директиве страницы ASPX. Если это так, замените его на false или удалите проводку вручную. Это может произойти при обновлении старой страницы до более нового формата веб-приложения с помощью файла конструктора.

0 голосов
/ 27 июля 2010

Похоже, что есть две вещи, вызывающие обратную передачу. Является ли кнопка кнопкой отправки и также имеет обработчик onclick? Это вызвало бы такое поведение.

2 запроса ASPX, которые вы видите в Fiddler, одинаковы или немного отличаются?

...