我有一个类似
的ajax调用this.GetTransactionsInputToday = function () {
var status="complete"
$.ajax({
url: '/Management/function1',
contentType: "application/json; charset=utf-8",
data: status,
type: 'GET',
cache: false,
success: function (result) {
return result;
}
});
}
我也试过这样做
this.GetTransactionsInputToday = function () {
var status="complete";
$.ajax({
url: '/Management/function1/' + status,
type: 'GET',
cache: false,
success: function (result) {
return result;
}
});
}
我的管理控制器类中有一个控制器功能
public JsonResult function1(string status)
{
Some code here..
}
问题是每次调用function1时,status的值都为null。 请问任何人,请告诉我哪里出错了?
答案 0 :(得分:12)
您需要为发送的数据data: {'status': status}
定义名称:
this.GetTransactionsInputToday = function () {
var status="complete"
var r = '';
$.ajax({
url: '/Management/function1',
contentType: "application/json; charset=utf-8",
data: {'status': status},
type: 'GET',
cache: false,
success: function (result) {
r = result;
}
});
return r;
};
此外,您的this.GetTransactionsInputToday
也不会按预期返回结果。 ajax函数的成功处理程序被异步调用。因此,在Ajax请求完成之前调用它时,return r
语句将返回''。
答案 1 :(得分:2)
您可能错误地构造了json参数。
使用json:
data: "{'prop1': '" + value1+ "'}"
$.ajax({
url: '/Management/function1',
contentType: "application/json; charset=utf-8",
data: "{'prop1': '" + value1+ "'}",
type: 'GET',
cache: false,
success: function (result) {
return result;
}
});
答案 2 :(得分:0)
尝试在ajax函数之外设置变量然后返回它,这样它就在正确的范围内。另外,为了获得立即值,您需要使此ajax调用同步。
this.GetTransactionsInputToday = function () {
var status = "complete";
var r = '';
$.ajax({
async : false,
url: '/Management/function1',
contentType: "application/json; charset=utf-8",
data: {'status' : status},
type: 'GET',
cache: false,
success: function (result) {
r = result;
}
});
return r;
};