反序列化Json不区分大小写

时间:2013-07-26 08:55:48

标签: ajax asp.net-mvc knockout.js

我正在使用ASP MVC4应用程序,而不是Web API。我有一个像这样的c#视图模型:

public class Car{
    public int Id {get;set;}
    public string Name {get;set;}
}

在客户端我正在使用knockout.js,视图模型是这样的:

function Car(data){
    var self = this;
    self.id = ko.observable(data.id);
    self.name = ko.observable(data.name);
}

当我通过ajax将knockout viewmodel发送到服务器时:

$.post("@Url.Action("MyAction")", ko.toJSON(myCar));

MyAction期待Car参数:

public JsonResult MyAction(Car model)
{
...
}

但是模型的所有属性都是null,因为post值是小写的,Car属性是大写的。

我正在寻找解决方案,我发现了这个:

var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
json.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

但它对我不起作用,我认为只适用于Web API。

你知道如何处理json绑定不区分大小写吗?

1 个答案:

答案 0 :(得分:0)

所有问题都是使用ko.toJSON(myCar),而是使用ko.toJS(myCar),现在它工作正常。