繁体   English   中英

从JQuery Json发布到ASP.Net MVC:2个参数为null

[英]Post from JQuery Json to ASP.Net MVC: the 2 parameters are null

我经历了旧的问答环节,例如jQuery在ASP.NET Web API (在此站点)上发布了null而不是JSON
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到达控制器时,将创建对象妙招 ,但MotPropose为null且Token为0。

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

首先,没有理由调用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));
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM