Двойная обратная передача в ASP.NET

Моя страница дважды полностью постбэк. Я использую главную страницу с AJAX. Структура главной страницы следующая.

+---------------------------------------------+

|  Web User Control with AJAX Tab Control     |

+---------------------------------------------+

|        |                     |              |

| Col1   | ContentPlaceHolder  |   Col3       |

|        |                     |              |

|        |                     |              |

+---------------------------------------------+

Пользовательский веб-элемент управления содержит контейнер вкладок AJAX с включенной функцией AutoPostback.

Я создал несколько страниц ASPX, используя эту мастер-страницу.

Заполнитель содержимого также получает веб-пользовательский элемент управления в зависимости от страницы.

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

Посетите - http://softwaregenius.net/ivnew4, чтобы получить представление. Я не могу указать логин.


person IrfanRaza    schedule 26.06.2009    source источник
comment
Вы узнаете эту двойную обратную передачу только внутренне или также распознает ее пользователь, то есть страница в браузере появляется, а затем перезагружается для второй обратной передачи?   -  person Juri    schedule 24.07.2009


Ответы (7)


Когда директива страницы autoeventwireup имеет значение true и вы прикрепляете событие OnInit к таким вещам, как Page_Load, эти события будут возникать дважды, что делает его похожим на двойную обратную передачу. Это могло быть что-то еще.

person MatthewMartin    schedule 24.07.2009
comment
Привет, Мэттью, я думаю, ты прав. Потому что я также использовал OnInit. В любом случае я удалил AutoPostback для TabContainer и вызвал страницы с помощью javascript. Еще раз спасибо. - person IrfanRaza; 27.07.2009

Нам может потребоваться дополнительная информация, но как вы располагаете и настраиваете панели обновлений? У вас есть панели обновлений?

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

person colithium    schedule 26.06.2009

Для меня в двойных обратных сообщениях обычно отсутствуют ресурсы или теги изображений без src - например,

<img src=""/>
person TWith2Sugars    schedule 24.07.2009

Есть ли на странице какой-либо код, который заставляет вас выполнить обратную передачу дважды?
Попробуйте использовать метод if (! Page.ispostback) {}
Я думаю, что это не из-за AJAX.

person Edwin Tai    schedule 24.07.2009

Я был в той же ситуации и довольно долго расстраивался. Думал, что кому-то это все еще может пригодиться. На моей странице было много настраиваемых вызовов ajax (не панель обновлений), и при обратной отправке для сохранения (реализация стиля запроса [".."], а не стиля control.value - потому что элементы управления создавались динамически через Ajax), обратная передача происходила дважды . Есть 2 решения, и оба они просты:

  1. Установите для AutoEventWireup значение false (это также отключит некоторые настраиваемые элементы управления, которые были подключены, например, сетка данных с привязкой к данным, как в моем случае)
  2. для тех, кто требует, чтобы AutoEventWireup был истинным, просто убедитесь, что все элементы управления или кнопки обратной отправки не являются элементами управления сервера, вместо этого они должны быть стандартными тегами HTML и НЕ должны иметь runat = "server".

Вот и все!

person Community    schedule 16.09.2009

У нас была такая же проблема, она вызвана вкладкой <img> наш <asp:Image> без "src =". Этот факт справедлив для Chrome, IE8 или более поздних версий.

[Nos tivemos o mesmo problema e ele é causado pela falta dos src nos controles <img> e <asp:Imagem> . Isso ocrre apenas nos chrome ou no ie8 acima]
person wander    schedule 08.09.2011

попробуйте это решение, вам нужно только скопировать вставку JS после вашего диспетчера сценариев

https://stackoverflow.com/a/22822756/1106625

person dnxit    schedule 02.04.2014