2013-07-26 45 views
0

我正在使用ASP MVC4應用程序,而不是Web API。我有這樣一個C#視圖模型:反序列化Json不區分大小寫

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期待一個汽車參數:

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

但模型始終將其所有屬性都設爲null,因爲後值是小寫,Car屬性是大寫。

我尋找一個解決方案,我發現這一點:

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

但它不適合我的工作,我認爲這是僅適用於網絡API。

你知道任何方式來做json綁定不區分大小寫嗎?

+0

所有的問題是使用ko.toJSON(myCar),而不是我使用ko.toJS(myCar),現在它工作正常。 –

+0

將此添加到答案中,然後將其作爲答案。這可能有助於許多人 –

回答

0

所有的問題是使用ko.toJSON(myCar),而不是我使用ko.toJS(myCar),現在它工作正常。