2012-12-09 19 views
4

我無法從knockout發佈數據收集到我的webapi服務。我無法從knockout發佈數據收集到我的webapi服務

我敲代碼:

$.ajax("/api/tasks/PostTask", { 
        data: ko.toJSON({ tasks: self.tasks }), 
        type: "post", contentType: "application/json", 
        success: function (result) { alert(result) } 
       }); 
      }; 

如果我把ko.toJSON的輸出({任務:self.tasks})div標籤的結果是:

{ 「任務」: [{「title」:「task#0」,「isDone」:false},{「title」:「task#1」,「isDone」:false},{「title」:「task#2」,「isDone 「:false」,{「title」:「task#3」,「isDone」:false},{「title」:「task#4」,「isDone」:false},{「title」:「task#5 「,」isDone「:false}]}

等等,iam發送數據。

我的WebAPI方法:

public void PostTaskCollection(List<Task> tasks) 
    { 

     foreach (Task item in tasks) 
     { 
      string _title = item.title; 
     } 

    } 

當我把一個斷點,我看到任務變量爲空。我究竟做錯了什麼?爲什麼收集不會傳遞給我的webapi方法?

回答

2

您不需要將您的self.tasks包裝在一個新對象中,否則Web.Api將無法正確綁定,因爲前綴爲"tasks"。所以只需寫ko.toJSON(self.tasks)

所以這個電話應該工作:

$.ajax("/api/tasks/PostTask", { 
     data: ko.toJSON(self.tasks), 
     type: "post", 
     contentType: "application/json", 
     success: function (result) { alert(result); } 
    }); 
相關問題