我有一个MVC 2应用程序。在客户端,有一个函数正在调用控制器,并且正在返回一个值,但我无法将其放在JavaScript变量中以供后续使用。
这是控制器返回的JSON(这部分工作正常,我和Fiddler一起检查过):
{"CompanyID":781}
这是我的JS / jQuery函数:
function getSelectedCompanyID() {
$.ajaxSetup({ cache: false });
var cid = "";
$.getJSON("/Company/GetLatestCompanyID/", function (json) {
cid = json.CompanyID;
});
return cid;
}
感谢。
修改: 只是为了澄清,问题似乎与这一行有关:
cid = json.CompanyID;
或使用JSON调用本身。检索到的值未放入JS变量中。
答案 0 :(得分:1)
通话异步。传递给“$ .getJSON()”的回调函数在HTTP请求完成之前实际上不会被调用,在外部函数返回后将是长时间。
为了处理这个事实而编写代码的方法是在回调函数中加入处理结果所需的所有逻辑。也就是说,不是编写代码以期望外部函数返回值,而是将所有代码放在中回调本身。
编辑 - 这是活动的时间表,澄清:
return
语句,并退出该函数。