0

このAJAXリクエストの構文を正しく取得しようとしています。リストに「traditional:true」パラメーターを使用する必要があることはわかっていますが、渡される他のパラメーターが壊れます。

$.ajax({
    type: 'GET',
    dataType: 'json',
    url: '../Workflow/GetTasks',
    contentType: "application/json",
    data: {
        queueID: filterData.queueID,
        workflowFilterID: filterData.workflowFilterID,
        genericFilters: filterData.genericFilters
    },
    traditional: true,
    success: function (data) {
    },
    error: function (error) {
        window.console && console.error(error);
    }
});

私のコントローラーのGetTasksメソッド:

public ActionResult GetTasks(TaskFilter taskFilter)

public class TaskFilter
{
    public int QueueID { get; set; }
    public int WorkflowFilterID { get; set; }
    public List<GenericFilter> GenericFilters { get; set; }
}

public class GenericFilter
{
    public int AttributeID { get; set; }
    public string FirstValue { get; set; }
    public string SecondValue { get; set; }
}

queueIDとを正常に取得できますworkflowFilterID。設定に応じて、null GenericFilters、空のリスト、または2つのアイテムを含むリストのいずれかを取得しますが、アイテムのプロパティは設定されていません。

traditional: true現在、結果をqueueID渡してworkflowFilterID定義されていgenericFiltersますが、アイテムが0個のリストです。従来のパラメータをコメントアウトすると、2つの空のオブジェクトのリストが表示されます。

誰かがこの構文を手伝ってくれませんか?でラッピングgenericFiltersしてみました$.param(filterData.genericFilters, true)JSON.stringify()オブジェクト全体を試してみました。

4

1 に答える 1

1

気になる点がいくつかありますが、何よりもリストのような複雑なオブジェクトを投稿する必要があります。

これを試して:

$.ajax({
    type: 'POST',
    dataType: 'json',
于 2013-03-01T20:30:35.300 に答える