0

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

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 将淘汰视图模型发送到服务器时:

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

MyAction 需要一个 Car 参数:

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

但是模型的所有属性总是为空,因为 post 值是小写的,而 Car 属性是大写的。

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

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

但这对我不起作用,我认为仅对 Web API 有效。

你知道有什么方法可以使 json 绑定不区分大小写吗?

4

1 回答 1

0

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

于 2013-07-26T12:36:11.737 回答