Ajax-функция, выбрасывающая WebServiceFailedException - PullRequest
1 голос
/ 15 июня 2009

Я использую ту же страницу asp.net для редактирования и добавления данных, только с некоторыми полями, отключенными и включенными соответственно. Теперь, когда я вызываю webmethod со страницы добавления, он работает нормально, но когда я вызываю его со страницы редактирования, это не так. Хотя я использую ту же функцию JavaScript для вызова метода на стороне сервера. Пожалуйста, смотрите код: .aspx:

function KeyCheck()
{
   var KeyID = event.keyCode;
   if(KeyID==46)
   {            
       PageMethods.Delete_files(CurrentObj.id);  
}

Теперь, когда я пытаюсь вызвать этот же метод с помощью edit, генерируется следующая ошибка:

Ошибка времени выполнения Microsoft JScript: Sys.Net.WebServiceFailedException: сбой метода сервера «Delete_files» со следующей ошибкой:

1 Ответ

2 голосов
/ 15 июня 2009

Если вы посмотрите здесь , они обсуждают аналогичную проблему. Хотя последний ответ не был выбран, я все равно рекомендовал бы делать то, что он говорит. После вашего первого параметра вы можете передать две функции обратного вызова; один для успешного вызова Ajax и один для отказа.

Ваша функция должна выглядеть примерно так:

var onDeleteSuccess = function(result) {
    //Successfully deleted files, maybe display confirmation to user.
};
var OnDeleteError = function(result) {
    //Deleting files unsuccessful, display error to user.
};
PageMethods.Delete_files(CurrentObj.id, onDeleteSuccess, OnDeleteError);

Попробуйте добавить «отсутствующие» (хотя они должны быть необязательными) параметры к вашему вызову PageMethod и посмотрите, решит ли это это.

Edit:

Я обнаружил закрытую ошибку на connect.microsoft.com об этой проблеме. Вы пытались использовать страницу только в IE7? Если это так, протестируйте его в других браузерах и посмотрите, работает ли он. Если это так, единственным вариантом может быть обновление IE7 до более новой версии или повторное открытие проблемы.

Редактировать после комментариев:

Попробуйте разместить этот код перед вызовом функции PageMethods.Delete_files:

PageMethods.set_path("PageYouAreTransferringto.aspx");

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...