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 正在工作,但参数“client”始终为空。

4

1 回答 1

3

我认为您不需要将“客户端”填充添加到您的数据中。尝试将数据设置为:ko.toJSON(model.selectedClient())

当我的客户端类如下所示时,“客户端”参数为我正确绑定了模型:

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 回答