【发布时间】:2013-12-05 11:35:36
【问题描述】:
我正在使用 jQuery 调用控制器,控制器正在返回一个值。 jQuery 正在获取该值,但它没有将其设置为我的变量并返回它。我在这里做错了什么?
GetDepartmentID 被调用,值为 1。它到达控制器,控制器返回为 1 的部门 ID。
console.log("Inside-DepartmentID " + data) 在控制台中显示为 1,所以我知道数据是从控制器返回的。
然后我将数据分配给部门 ID。把它返还。然后我的外部函数尝试 console.log 返回并且它是未定义的。没看懂。
.change 函数调用 GetdepartmentID(1);
function GetDepartmentID(functionID) {
var departmentID;
jQuery.getJSON("/MasterList/GetDepartmentID/" + functionID, null, function (data) {
console.log("Inside-DepartmentID " + data)
departmentID = data;
});
return departmentID;
}
jQuery('#functionID').change(function () {
var functionID = jQuery(this);
//console.log(functionID.val());
var value = GetDepartmentID(functionID.val());
console.log("test " + value);
//GetOwnerList(value);
});
【问题讨论】:
-
觉得这样评论更好:AJAX 是异步的,当您点击
console.log语句时,您的请求仍在处理中,因此返回undefined -
@tymeJV 这是否意味着我想要做的事情是不可能的?我需要做的就是向我的控制器传递一个 int,它返回一个 int,然后我将该 int 用于另一个 AJAX 调用。
-
@JamesWilson 一个不太好的方法是让你的 Ajax 调用
async:false从 $.getJSON 切换到传统的 ajax 调用... -
@James Wilson -- 当然有可能,看 PSL 的回答,你需要一个回调函数。
-
@tereško 你需要对全局编辑标签更加小心,这个问题与 asp.net mvc 完全无关,我也看不到任何答案或 cmets 中的任何暗示。跨度>
标签: javascript jquery ajax asp.net-mvc