неопределенное значение при вызове кода сервера из JavaScript в asp.net - PullRequest
2 голосов
/ 19 ноября 2011

Я вызываю серверный метод из JavaScript. Я проверил метод сервера, и он работает правильно. Когда я вызываю метод сервера из JavaScript, я получаю неопределенное значение вместо true или false. Может кто-нибудь сказать мне, как получить правильное значение?

это метод javascript, который я вызываю

function IsElectronic(programId) {
    var isElectronic = PageMethods.IsElectronic(programId);
    alert(isElectronic); //  The alert says undefined
    return isElectronic;
}

Вызов на стороне сервера - этот метод работает правильно

[System.Web.Services.WebMethod]
public static bool IsElectronic(long programId) {
    var taskProcessor = new TaskBL();
    var IsElectronic = taskProcessor.GetDelieveryType(programId).ContainsValue("ELECTRONIC");
    if (IsElectronic) {
        return true;
    } else {
        return false;
    }
}

1 Ответ

3 голосов
/ 19 ноября 2011

Вызов веб-сервиса является асинхронной операцией. Чтобы получить результат, вы должны использовать обратный вызов.

function IsElectronic(programId) {
    PageMethods.IsElectronic(programId, function(result) {
        alert(result); // true
    });
    // you cannot return a value, there isn't one yet
    //return isElectronic;
}
...