【发布时间】:2016-09-08 15:16:57
【问题描述】:
我正在尝试创建一个可重用的函数,它允许我调用 AJAX 请求并将传入的参数之一用作 AJAX 调用的数据部分中的参数。
// Returns AJAX data for updating other fields based on a dropdown changing
App.prototype.OnDropdownChange = function (s, e, newId, ajaxParameter, ajaxRequestURL) {
// Create an AJAX request based on the parameters
$.ajax({
url: ajaxRequestURL,
data: JSON.stringify({ ajaxParameter: newId }),
type: 'POST',
success: function (data) {
// Return the data
return data;
},
error: function (data) {
// Error
return data;
}
});
}
理想情况下,“ajaxParameter”将保存被传递的参数的名称。例如,“ajaxParamter”包含“theNewID”,这是我的 MVC 控制器期望的参数,但是当它被传递时,它显示为“ajaxParameter”,而不是里面的值。
我怎样才能让它工作?
编辑
在这里看到它是如何显示为 ajaxParameter 的?我想要的是成为我传递的任何东西。
【问题讨论】:
-
是的,这完全有可能,假设您控制了调用所述函数的内容。
-
我确实控制了调用它的内容,但记录的内容是“未定义的”。 var data = x.OnDropdownChange(s, e, contactID, "CustomerContactId", "/Project/Project/GetCustomerContactDetails/"); console.log(data);
-
嗯...哈哈,你不能从异步回调中返回。
-
问题不是返回,而是如果我将“theNewID”作为 ajaxParamater 传递(因为我的服务器端控制器期望“thenewID”作为参数)但它传递了“ajaxParameter " 到控制器,而不是 ajaxParameter 中包含的内容。
-
uhm...您将参数命名为“ajaxParameter”,当然可以使用json格式的值传递该键。
标签: javascript jquery ajax asp.net-mvc