ajax post每个循环都无法向控制器发送值

时间:2014-05-02 15:04:01

标签: jquery ajax arrays asp.net-mvc

我正在调用api,我得到一个包含多个数组的数组。所以我想做每个数组并获取每个数组的值3并将该值发送到我的名为addGame的控制器方法。如果我调试它,我可以看到它每次循环每个循环时选择正确的值并且它转到我的控制器方法但它发送的值为null。这是我的代码:

  var date = "02/13/2014";

$.ajax({
    dataType: "jsonp",
    type: "post",
    crossDomain: true,
    url: 'http://stats.nba.com/stats/scoreboard/?LeagueID=00&gameDate=' + date + '&DayOffset=0',
    success: function (val) {
        var result = val.resultSets[0].rowSet;
        $.each(result, function (key, value) {
            var gameID = this[2];
            $.ajax({
                async: false,
                type: "post",
                url: "/Stats/addGame",
                data: gameID,
            });
        });
    }

})

这是我的控制器:

  public void addGame(string gameid) 
    {

    }

2 个答案:

答案 0 :(得分:0)

我认为您的第二个ajax数据需要为gameid,或者您的c#方法需要为gameID,或者您需要将其作为对象传递,例如{gameid: gameID},这就是为什么你变得空了。您传递的是gameID,而不是gameid。无论哪种方式,这都是很好的做法。

所以:

$.ajax({
    url: "/Stats/addGame",
    dataType: 'json',
    data: { gameID: gameID },
    type: "POST",
    async: false,
    success: function (data) {},
    error: function (jqXHR, err) {}
}

public void addGame(string gameID) 
{

}

答案 1 :(得分:0)

我会引用this question来确定变量内容的最佳方法,然后我会做两件事之一:

1)将来自网络的数据转换为字符串,然后再将其发送到控制器

- 或 -

2)更改控制器功能以期望从Web传入的数据类型

根据您的AJAX调用判断,您看起来正在获得JSON作为回报。在将其发送到控制器之前,您可能需要解析它。请参阅this question