0

我想要做的是将 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
                });

Gasoline 属性在服务器端是布尔类型。

编辑:

如上所述,Gasoline 是布尔值,作为 MVC,我的 HTML 标记如下

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

所以我只是把这个复选框的值传递给 JSON 对象

编辑

也试过直接发送true

blData = { Gasoline: true  }; 

还是假服务器端!

4

2 回答 2

1

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

于 2012-11-01T11:08:05.657 回答
0

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

谢谢大家的帮助。

于 2012-11-01T13:04:38.833 回答