2013-07-20 4 views
0

Я использую ретранслятор, и я получаю эту ошибку после нажатия на кнопку (с командой)Invalid постбэк или аргумент обратного вызова ошибки

Invalid postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation. 

Я сделал некоторые исследования, и я читал, что мне нужно установить EnableViewState = "False", не работает. \

Также пробовал, что в файле web.config не работает.

Используется также обновленная панель: та же проблема.

Какая ошибка? В моем предыдущем проекте ASP это работало отлично для меня без изменения настроек.

Может ли кто-нибудь мне помочь?

ответ

3

Не видя кода, я предполагаю, что вы привязываете данные для своего контроля до того, как будут запущены события (т. Е. Привязка данных в Page_Load, потому что это вызывается перед кодом обработчика события).

Вам нужно только связать данные в Page_Load, когда страница не постбэк (т.е. первой загрузки страницы, а не за клики событий), как это:

if(!Page.IsPostBack) 
{ 
    // Bind repeater data here 
} 

Затем в конце вашего обработчик события (т. е. щелчок команды), тогда вы должны перевязать данные как последнюю строку этого метода или часть метода, где у вас есть логика, относящаяся к щелчку пользователя.

+0

Вау действительно этого не знал. Это здорово! Не могли бы вы объяснить мне больше? Зачем мне нужна обратная связь? Почему это не работает без него (извините, я не понимаю postbacks, много читаю об этом ...) – Swag

+1

Ну, это не значит, что вам нужна обратная передача, а скорее факт, что происходит обратная передача, которая следствие здесь. ASP.NET WebForms основан на предпосылке, что вы запрашиваете серверную страницу с элементами управления на стороне сервера, каждая из которых, в свою очередь, имеет события, которые вызывают обратную передачу (т. Е. Вся страница создается снова, вместе со всеми элементами управления на ней). Здесь происходит время событий, или то, что называется жизненным циклом страницы. 'Page_Load' является одним из событий в этом жизненном цикле, и это происходит до событий клика любого из элементов управления на странице. –

+1

ASP.NET WebForms - это зрелая технология, и многие современные приложения были и остаются с ней сегодня. Проблема возникает, когда вы хотите более тесно работать с HTML/CSS/JavaScript вашего приложения. Благодаря простоте управления сервером вы теряете достаточный контроль над тем, как этот элемент управления отображает HTML/CSS/JavaScript. Кроме того, логика на стороне клиента (т.е. jQuery) становится проблематичной при взаимодействии с жизненным циклом страницы ASP.NET WebForms, поскольку WebForms никогда не планировал, чтобы клиент делал какой-либо серьезный подъем с помощью JavaScript, таким образом, вы видите рост ASP.NET MVC, и т.д. –

Смежные вопросы