У меня есть серверный элемент управления .ascx в ASP.NET 2.0, который содержит несколько других серверных элементов управления .ascx. Все в верхнем уровне обернуто в UpdatePanel. Он прекрасно работает, пока я не сделаю что-то на странице второй раз, а затем я получаю эту ошибку в диалоговом окне с предупреждением:
Неверный аргумент обратной передачи или обратного вызова. Проверка события включена с использованием в конфигурации или <% @ Page EnableEventValidation = "true"%> на странице. В целях безопасности эта функция проверяет, что аргументы для событий обратной передачи или обратного вызова исходят от серверного элемента управления, который первоначально их представил. Если данные действительны и ожидаемы, используйте метод ClientScriptManager.RegisterForEventValidation, чтобы зарегистрировать данные обратной передачи или обратного вызова для проверки.
Это похоже на распространенную ошибку; Поиск в Google показывает несколько результатов. Кажется, все они говорят, что если происходит обратная передача, вы должны обязательно вызвать Update на любой панели UpdatePanels, содержащей элементы управления, которые были обновлены. Но когда я отлаживаю это, вся моя страница содержится внутри одной UpdatePanel (которой UpdateMode всегда), так что это кажется неправильным. Что происходит?