2

我有一个 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。任何人都可以让我知道我哪里出错了吗?

4

3 回答 3

16

您需要为发送的数据定义名称 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 函数的成功处理程序被异步调用。因此,您的return r语句将返回'',因为它在 Ajax 请求完成之前被调用。

于 2012-12-20T10:50:38.830 回答
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;
             }
         });
于 2012-12-20T10:47:59.550 回答
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;
};
于 2012-12-20T10:48:06.307 回答