JSON.Stringify包括布尔值的数据

时间:2012-11-01 10:52:03

标签: c# javascript jquery asp.net-mvc-4

我要做的是将JSON对象传递给WebAPI ajax调用并映射到服务器端的强类型对象。字符串值被完美地发布,但是当涉及到布尔值时,它们根本就没有被传递。以下是我的代码:

 var gsGasolineField = $('.gsGasoline').val();
 blData = { Gasoline: gsGasolineField  };

 var json = JSON.stringify(blData);
 $.ajax({
         type: "POST",
         url: url,
         data: json,
         contentType: "application/json",
         dataType: "json",
         statusCode: {
                      201 /*Created"*/: function (data) {
                            $("#BusinessLayerDialog").dialog("close");
                            ClearForm("#BusinessLayerForm");
                        },
                        400: /*Bad request - validation error*/ function (data) {
                            $("#BusinessLayerForm").validate().form();

                        },
                        500: function (data) {
                            alert('err');
                        }
                    },
         beforeSend: setHeader
                });

汽油属性在服务器端是boolean类型。

修改

如上所述,Gasoline是boolean并且是MVC我的HTML标记如下

<div style="float: left">@Html.CheckBoxFor(x => x.GasStation.Gasoline, new { @class = "gsGasoline" })</div>

所以我只是取这个复选框的值并将其传递给JSON对象

修改

还试图直接发送它

blData = { Gasoline: true  }; 

仍然是错误的服务器端!

2 个答案:

答案 0 :(得分:1)

$('.gsGasoline').val()更改为$('.gsGasoline').is(':checked')

答案 1 :(得分:0)

问题原来是由于我的服务器端架构的继承方面。正在正确地反序列化父类中的所有属性,并且子类中的所有内容都保持不变。没有任何东西与传递给JSON.Stringify函数的类型有关。

谢谢大家的帮助。