我正在从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;
    }
}

最佳答案

调用Web服务是异步操作。要获得结果,您必须使用回调。

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

09-19 12:15