C# 字符串化数据,包括布尔值

C# 字符串化数据,包括布尔值,c#,javascript,jquery,asp.net-mvc-4,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",

我要做的是将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
                });
汽油属性在服务器端为布尔类型

编辑:

如上所述,汽油是布尔型的,作为MVC,我的HTML标记如下

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

还是假的服务器端

$('.gsgallet').val()
更改为
$('.gsgallet')。是否(':checked')
问题原来是由于我的服务器端体系结构的继承方面。父类中的所有属性都被正确反序列化,子类中的所有内容都保持不变。与传递给JSON.Stringify函数的类型无关


谢谢大家的帮助。

gsGasoline是哪种类型的字段?请同时提供控制器上操作的代码、尝试映射到的C类以及.GSGALIATE的HTML标记?如果gsGasolineField是复选框,则返回“开”或“关”,而不是布尔值。试试
(gsGasolineField=='on'?true:false)
或者干脆
(gsGasolineField=='on')
我认为
jQuery.val()
总是返回字符串,而不是布尔值。@Barmar-它是,它总是一个字符串,而字符串化肯定会使它成为字符串,那么为什么要在服务器端检查布尔值呢?
blData = { Gasoline: true  };