将json对象发送到mvc控制器

时间:2014-05-07 14:38:21

标签: jquery asp.net-mvc json

我想从api发送我的json-object并将其发送给我的控制器并将其解析为我的模型。

   var playerstats = val.resultSets[4].rowSet[0]
                        $.each(playerstats, function (key, value) {
                            $.ajax({
                                async: false,
                                type: "post",
                                url: "/Stats/addBoxScore",
                                data: JSON.stringify(playerstats),
                                done: function (data) {
                                    console.log(data);
                                },
                                error: function (jqXHR, err) {
                                    console.log(err);
                                }
                            });

                        });

这是我的控制器:

  public void addBoxScore(Games playerstats) 
    {
        var gamesID = playerstats;
    }

现在我没有在控制器中做任何事情,因为我无法从ajaxpost获取数据。

这是我的模特:

 public class Games
{
    [Key, Column(Order = 0)]
    public int GAME_ID { get; set; }
    public int TEAM_ID { get; set; }
    public string TEAM_ABBREVIATION { get; set; }
    public string TEAM_CITY { get; set; }
    [Key, Column(Order = 1)]
    public int PLAYER_ID { get; set; }
    public string PLAYER_NAME { get; set; }
    public string START_POSITION { get; set; }
    public string COMMENT { get; set; }
    public int MIN { get; set; }
    public int FGM { get; set; }
    public int FGA { get; set; }
    public int FG_PCT { get; set; }
    public int FGTHREEM { get; set; }
    public int FGTHREEA { get; set; }
    public int FGTHREE_PCT { get; set; }
    public int FTM { get; set; }
    public int FTA { get; set; }
    public int FT_PCT { get; set; }
    public int OREB { get; set; }
    public int DREB { get; set; }
    public int REB { get; set; }
    public int AST { get; set; }
    public int STL { get; set; }
    public int BLK { get; set; }
    public int TO { get; set; }
    public int PF { get; set; }
    public int PTS { get; set; }
    public int PLUS_MINUS { get; set; }

    public virtual Player player { get; set; } 
}

当来自ajax帖子的数据到达控制器时,它全部为空。我做错了什么?

2 个答案:

答案 0 :(得分:0)

我可以为您的发送数据编写数据类型,而不需要编写" strngify"。

datatype: "json"

答案 1 :(得分:0)

当您将数据作为JSON.stringify(...)传递时,您传递的是字符串。我建议对动作进行以下编辑:

public void addBoxScore(string playerstats) 
    {
       //Use a deserializing library to convert the string to a strongly typed class.
    }

您可以使用this library进行反序列化。

希望这有帮助!