4

ノックアウトから webapi サービスにデータ コレクションを送信できません。

私のノックアウトコード:

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

ko.toJSON({ tasks: self.tasks }) の出力を div タグに入れると、結果は次のようになります。

{"タスク":[{"タイトル":"タスク# 0","isDone":false},{"タイトル":"タスク# 1","isDone":false},{"タイトル":"タスク# 2","isDone":false},{"タイトル":"タスク番号 3","isDone":false},{"タイトル":"タスク番号 4","isDone":false},{"タイトル" :"タスク番号 5","isDone":false}]}

だから、私はデータを送信しています。

私のwebapiメソッド:

 public void PostTaskCollection(List<Task> tasks)
    {

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

    }

ブレークポイントを入れると、タスク変数が null であることがわかります。私は何を間違っていますか?コレクションが webapi メソッドに渡されないのはなぜですか?

4

1 に答える 1

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); }
    });
于 2012-12-10T06:38:25.710 に答える