0

Web API ではなく、ASP MVC4 アプリで作業しています。次のような 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 プロパティは大文字であるため、モデルのすべてのプロパティは常に null です。

私は解決策を探していて、これを見つけました:

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 に答える