将json对象发布到MVC3控制器,布尔值始终为false

时间:2012-10-24 10:54:12

标签: json asp.net-mvc-3 jquery

我有一个包含几个布尔值的对象。但我没有将它发布到mvc3控制器,服务器成功接收到其他值。

$.ajax({
     url: url,
     type: 'POST',
     data: JSON.stringify(g),
     datatype: 'json',
     contentType: 'application/json;charset=utf-8',
     success: function (data) {
      }
});

call JSON.stringify(g)将返回以下字符串(* partial)

"Entry":["true","false"],"Exit":"false","Speeding":["true","false"],"SpeedLimit":"110","EES_Monday":["true","false"],"EES_Tuesday":["true","false"],"EES_Wednesday":["true","false"],"EES_Thursday":["true","false"],"EES_Friday":["true","false"],"EES_Saturday":"false","EES_Sunday":"false"

但是,我的服务器控制器未能收到布尔值

[HttpPost]
public String Edit(EditModel g){ }

所有布尔值都为false。但是收到了其他价值。

有什么可能的原因?

我整个下午都被困在这里。请指导我。

1 个答案:

答案 0 :(得分:0)

看起来,你的布尔值是string。也许您的JSON反序列化程序不会将"true"转换为true

在静态类型语言中(包括C#)

true != "true"