1

コントローラーコード:

[HttpPost]
public void UpdateClient(Client client)
{  
   // Rest of code
}

クライアントコード:

 $.ajax({
            url: "api/client/UpdateClient",
            type: 'post',
            contentType: 'application/json',
            data: "{client: " + ko.toJSON(model.selectedClient()) + "}",
            success: function (result) {
                getClients();
                $("#loader").hide();
            },
            failure: function (result) {
                alert(result.d);
                $("#loader").hide();
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                alert("An error occurred, please try again.");
                $("#loader").hide();
            }
        });

何らかの理由で、model.selectedClient() が正常で ko.toJSON が機能していることを確認したにもかかわらず、パラメータ「クライアント」は常に null です。

4

1 に答える 1

3

データに「クライアント」パディングを追加する必要はないと思います。データを次のように設定してみてください: ko.toJSON(model.selectedClient())

Client クラスが次のようになっている場合、「client」パラメーターはモデル バインドを正しく取得しました。

public class Client
{
    public string Name { get; set; }
    public string Company { get; set; }
}

...そして私のajaxは次のようになります:

        $.ajax({
            url: "api/values/UpdateClient",
            type: "post",
            contentType: 'application/json',
            data: "{ 'Name': 'John', 'Company': 'ABC'}"
        });
于 2012-10-09T21:22:46.660 に答える