从JQuery Json发布到ASP.Net MVC:这两个参数为空

本文关键字:两个 参数 Json JQuery MVC Net ASP | 更新日期: 2023-09-27 17:59:50

我经历了旧的问答;类似的jQuery向ASP发布null而不是JSON。NET Web API(在此网站上),
http://encosia.com/using-jquery-to-post-frombody-parameters-to-web-api/或
https://weblog.west-wind.com/posts/2012/May/08/Passing-multiple-POST-parameters-to-Web-API-Controller-Methods...
我尝试了所有的提示和解决方案,但我的控制器中仍然没有值
这是我的代码:

客户端HTML文件:

var coup = { Token: token, MotPropose: RecupMot() };
var coupJSON = JSON.stringify(coup);
$.ajax({
            type: 'POST',
            url: urlJeu,
            dataType: 'json', 
            data: coupJSON,
            success: function (reponseJSON) {
                 /* CODE HERE */
            },
        });

它正确地发送以下JSON(Fiddle说):

{"Token":103,"MotPropose":"ravoi"}

(顺便说一句,我担心在int 103附近的缺失,不是吗?)

服务器C#控制器和对象:

public object Post([FromBody]CoupMeliMelo coup)
{
    return Ok(jeu.JouerLeCoup(coup));
}
public class CoupMeliMelo : ICoup
{
    public string MotPropose { get; set; }
    public int Token { get; set; }
}

然后,当JSON到达控制器时,会创建对象coup,但MotPropose为null,Token为0。

我被卡住了!谢谢你的帮助。

从JQuery Json发布到ASP.Net MVC:这两个参数为空

首先,没有理由调用stringify。只需张贴对象即可。其次,以application/json的形式发送内容。

var coup = { Token: token, MotPropose: RecupMot() };
$.ajax({
        type: 'POST',
        url: urlJeu,
        dataType: 'json', 
        contentType: "application/json",
        data: coup,
        success: function (reponseJSON) {
             /* CODE HERE */
        },
    });

最后,[FromBody]属性不适用于ASP。NET MVC,只有WebApi。你不需要它。

public object Post(CoupMeliMelo coup)
{
    return Ok(jeu.JouerLeCoup(coup));
}