Неверный аргумент обратной передачи или обратного вызова. Вопрос отладки - PullRequest
3 голосов
/ 04 мая 2009

Я получаю сообщение об ошибке: «Недопустимый аргумент обратной передачи или обратного вызова. Проверка события включена с помощью конфигурации или страницы. В целях безопасности эта функция проверяет, что аргументы для событий обратной передачи или обратного вызова исходят от серверного элемента управления, который изначально отображался их. Если данные действительны и ожидаемы, используйте метод ClientScriptManager.RegisterForEventValidation, чтобы зарегистрировать данные обратной передачи или обратного вызова для проверки. " Проверка события включена с помощью в конфигурации или на странице. Я не изменяю данные в элементах управления через JavaScript. Ошибка возникает очень редко, и я знаю об этом только из-за автоматической настройки электронной почты, которую я настраиваю, когда генерируются исключения. Как мне лучше всего найти причину исключения? Возможно ли, что в некоторых случаях текст, введенный в текстовое поле, вызывает эту ошибку, и мне нужно выполнить HTML-кодирование? Когда я сделаю кодирование?

Ответы [ 3 ]

1 голос
/ 04 мая 2009

Я часто сталкивался с этой проблемой, когда пользователь отправляет форму с потенциально опасным символом в поле ('<', '>' и т. Д.). Если на вашей странице необходимо разрешить отправку этих символов в форме, необходимо установить для свойства уровня страницы ValidateRequest значение false.

Ex.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MyClass.cs" Inherits="MyClass" ValidateRequest="false" %>

Если вы хотите заблокировать эти типы представлений (что обычно желательно), вам, вероятно, потребуется добавить сценарии на стороне клиента, чтобы предотвратить ввод недопустимых символов в форму. Если пользователь не может ввести недопустимые значения, форма может успешно опубликовать. Если вы попытаетесь выполнить проверку только на стороне сервера, она не будет запущена, поскольку сначала выполняется .NET ValidateRequest.

1 голос
/ 04 мая 2009

Если проблема возникает очень редко, обычно означает, что какой-то пользователь быстро опубликовал страницу или имеет очень плохое соединение, что не позволяет задействовать весь скрытый механизм JavaScript обратного вызова ASP.net. .

0 голосов
/ 06 мая 2009

У меня была эта ошибка раньше, оказалось, что кто-то изменил атрибут "действия" тега form runat="server" на другой URL-адрес (который не работает, если не используется обратная передача между страницами)

-редакт: в этом случае, конечно, это случается не часто, поэтому, вероятно, не поможет вам найти правильное решение

...