ASP.NET — Ошибка среды выполнения Microsoft JScript: Sys.WebForms.Исключение PageRequestManagerServerErrorException: недопустимый аргумент обратной отправки или обратного вызова

#asp.net #updatepanel

#asp.net #панель обновления

Вопрос:

Я не понимаю, почему это происходит. Я добавил следующий код в свой ASP.NET проект, и он работал просто отлично несколько дней назад. Затем я продолжил работу над страницей, пока сегодня я не попытался нажать кнопку «Подтвердить» из приведенного ниже кода, и вот что происходит:

Во-первых, это asp.net код:

 <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
 <ContentTemplate>
  <asp:TextBox ID="TextVerifyName" runat="server" CssClass="input1" EnableViewState="false"></asp:TextBox>
  <asp:Button ID="ButtonVerifyName" runat="server" Text="Verify" CssClass="checkButton" onclick="ButtonVerifyName_Click" />
  <asp:UpdateProgress ID="UpdateProgressVerifyName" runat="server" AssociatedUpdatePanelID="UpdatePanel1">
   <ProgressTemplate>
    <img src="Graphics/spinner.gif" alt="Please wait" />
   </ProgressTemplate>
  </asp:UpdateProgress>
 </ContentTemplate>
</asp:UpdatePanel>
  
  1. При первом нажатии кнопки «Подтвердить» код работает нормально.
  2. При втором запуске я получаю следующую ошибку:

Ошибка среды выполнения Microsoft JScript: Sys.WebForms.Исключение PageRequestManagerServerErrorException: недопустимый аргумент обратной отправки или callback. Проверка события включена с помощью в конфигурации или <%@ Page EnableEventValidation=»true» %> на странице. В целях безопасности эта функция проверяет, что аргументы для событий обратной отправки или обратного вызова исходят от серверного элемента управления, который первоначально их отобразил. Если данные действительны и ожидаемы, используйте ClientScriptManager.Метод RegisterForEventValidation для регистрации данных обратной отправки или callback для проверки.

Кто-нибудь может объяснить, почему это происходит, потому что приведенное выше сообщение об ошибке не более чем на 100% сбивает с толку???
Я ничего не делал с ClientScriptManager.RegisterForEventValidation методом.

Ответ №1:

Попробуйте поместить любую функцию / привязку, указанную вами в page_load событии, внутрь

 if(!IsPostback)
{

}
  

Это может помочь.

Ответ №2:

Действительно, я загружал данные в Page_Load метод, но что было странным, так это то, что при нажатии на сетку, в которой отображалась ошибка выполнения командной строки javascript. Решение заключалось в

 (! IsPostBack)
{
/ / loadData
}
  

Ответ №3:

Хотите верьте, хотите нет, но мне потребовалось полдня, чтобы найти причину этой ошибки. Итак, может быть, кто-нибудь может дать мне разумное объяснение того, как эти два связаны?

Где-то в коде во время события загрузки страницы я настраивал элемент управления DropDownList, добавляя в него элементы следующим образом:

 DropDownList1.Items.Add(new ListItem("Name", "Value"));
  

Это aspx-код для этого:

 <asp:DropDownList ID="DropDownList1" runat="server" EnableViewState="false"></asp:DropDownList>
  

Итак, если я удалю EnableViewState=»false» из тега выше, сообщение об ошибке, которое находится в совершенно не связанной области (т. Е. UpdatePanel), исчезнет.

Есть идеи, как два связаны????