使用Jquery.post时,将接收属性值为null的对象

时间:2014-11-19 05:42:46

标签: jquery ajax asp.net-mvc json asp.net-mvc-4

在切换到ASP.NET MVC后,我永远不需要将JSON对象发送到控制器动作,所以我很舒服地使用jqeury.post进行AJAX调用。所有的动作方法都只是接收原始类型。但最近我不得不发送一个JSON对象,所以我这样做了:

$.post(myUrl,JSON.stringify({param1:myJsonObject}),success(data){...},'json');

当我将断点放在action方法的开头时,令我惊讶的是,我发现接收到的对象的所有属性都为null。但是,如果我在发送之前没有“JSON.stringify”对象,我可以正确获取字符串属性,但那些具有DateTime类型的对象始终是01.01.0001 ..

现在,如果我试着说,旧的时尚方式,一切都很顺利:

        $.ajax({
        url: myUrl,
        type: 'POST',
        data: JSON.stringify({param1:myJsonObject}),
        contentType: 'application/json',
        dataType: 'json',
        success: function (data) {
           //any code
        }
    });

所有属性都设置为正确的值。我查看了jquery.post的源代码,发现没有设置contentType,所以我把它设置为application / json。但这也没有帮助。 jquery版本是1.8.2。你知道什么是错的吗?

1 个答案:

答案 0 :(得分:3)

试试这个

$.post(myUrl,JSON.stringify({param1:myJsonObject})).success(function(data){

 },'json');