在click事件中,我调用PageMethods请求,该请求包含两个回调函数:OnServerValidationSuccess和OnServerValidationFailure。我也尝试创建一个名为clientResult
的对象;访问在PageMethod调用的回调函数中设置的JavaScript变量
var clientResult = { rc: "", msg: "" };
$('#btnSave').click(function() {
PageMethods.ServerValidateCreateCompany(companyName, domainName, country, OnServerValidationSuccess, OnServerValidationFailure);
alert(clientResult.rc); //this is null!
});
在OnServerValidationSuccess中,结果参数包含异步响应。在那里,我尝试将它分配到clientResult
。
//On Success callback
function OnServerValidationSuccess(result, userContext, methodName) {
clientResult = result;
if (clientResult.msg.length != 0) {
document.getElementById('resMsg').innerHTML = clientResult.msg;
$('#resMsg').addClass('warning');
}
}
我分配在回调函数的result
当地clientResult
变量。它应该包含完整的服务器响应,由服务器端WebMethod正确发送。 但是,在调用PageMethod之后它仍为空或为空。 为了将回调中设置的变量赋值给局部变量以便我可以访问它,必须做些什么?
什么是您的PageMethod的样子?没有看到这一点很难说。 – 2011-04-19 16:32:01
在附注上,我会主张在PageMethod上使用HttpHandler。与使用页面相比,它的开销要少很多。 – 2011-04-19 16:35:03