1

を受け取るMVC関数へのjQuery AJAX呼び出しを介してJsonを返していますFolder。MVC は一部のデータを正しく解析しますが、送り返したリストは正しく解析しません。

MVC

public class Folder : IValidate
{
    public int Id { get; set; }
    public string Name { get; set; }
    public ICollection<SearchCriteria> SearchCriteria { get; set; }
}

public class SearchCriteria
{
    public int FolderId { get; set; }
    public int SettingsEntryID { get; set; }
    public string SearchParameter { get; set; }
}

public ActionResult EditFolder(Folder folder)
{
   service.EditFolder(folder);
   return this.Json(Json(new { Success = true }));
}

Javascript

var folder = {
    Id: $("#groupID").val(),
    Name: $("#groupName").val(),
    SearchCriteria: []
};

$(".searchCriteria").each(function () {
    folder.SearchCriteria.push(
        {
            FolderId: $("#groupID").val(),
            SearchParameter: $(this).val(),
            SettingsEntryID: $(this).attr("id").replace("searchCriteria", "")
        });
});

$.ajax({
    url: "/settings/editfolder/",
    type: "POST",
    dataType: "json",
    data: folder,
    traditional: true,
    success: function (data) {
        alert("wsaved");
    }
});

folder、この関数ではIdand で設定されますが、正しく設定されていませんNameSearchCriteriaに設定されていnullます。コメントアウトするとtraditional: true、リストが作成されますが、それぞれのすべての値SearchCriteria0またはnullです。

何か不足していますか?

4

1 に答える 1