Сообщение, полученное с сервера, невозможно разобрать

Я получаю следующую ошибку на веб-странице asp.net

Sys.WebForms.PageRequestManagerParserErrorException: Сообщение, полученное с сервера не может быть проанализирован. Общие причины эта ошибка возникает, когда ответ измененный вызовами Response.Write(), фильтров ответов, HttpModules или трассировка сервера включена.

Сценарий моей страницы выглядит следующим образом

  • У меня есть страница asp.net, которая реализует Ajax
  • Пользовательский контроль всего кода находится внутри панели обновления
  • Расширение всплывающего окна модели на странице aspx для User Control.

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

Ответы

Ответ 1

Добавить PostBackTrigger в UpdatePanel с помощью ControlID

</ContentTemplate>
<Triggers>
    <asp:PostBackTrigger ControlID="PostbackButtonName" />
</Triggers>

Ответ 2

Пришлось зарегистрировать кнопку для отправки назад с помощью ScriptManager:

protected void Page_Load(object sender, EventArgs e)
{
    System.Web.UI.ScriptManager.GetCurrent(this).RegisterPostBackControl(btnExport);            
}

Ответ 3

После некоторого времени, я наконец понял, что я установил значение "runAllManagedModulesForAllRequests" в "true" в моем web.config и впоследствии удалил модуль, но не этот параметр.

Переключив параметр web.config на:

<system.webServer>
  <modules runAllManagedModulesForAllRequests="false"/></system.webServer>

Сделал сделку...!:)

Ответ 4

  • Если использование в Repeater: событие rpt_ItemDataBound добавляет:

    ImageButton btnDownload = (ImageButton) e.Item.FindControl( "btnDownload" );

               if (btnDownload != null)
               {   ScriptManager.GetCurrent(this.Page).RegisterPostBackControl(btnDownload);
                   var scriptManager = ScriptManager.GetCurrent(this.Page);
                   if (scriptManager != null)
                     scriptManager.RegisterPostBackControl(btnDownload);
               }