2012-10-09 18 views
1

控制器代码:的WebAPI传递的数据是空

[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正在工作。

回答

3

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

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

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

...和我的阿贾克斯看起来像这样:

 $.ajax({ 
      url: "api/values/UpdateClient", 
      type: "post", 
      contentType: 'application/json', 
      data: "{ 'Name': 'John', 'Company': 'ABC'}" 
     }); 
+0

完美,只是改变了那个伎俩。 – user1166905