我正在使用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绑定不区分大小写吗?
答案 0 :(得分:0)
所有问题都是使用ko.toJSON(myCar),而是使用ko.toJS(myCar),现在它工作正常。