绑定到 AJAX 的模型突然不起作用

Model Binding to AJAX suddenly not working

我有一个 AJAX POST 请求,它应该将用户的搜索过滤器发送到控制器操作和 return 适当的结果。这工作得很好,然后它就停止工作了。我没有改变任何东西,它工作正常,模型完全按照预期绑定,然后它就坏了,现在它只会绑定到非数组项。

这是我的完整 Jquery AJAX 代码:

var parent = $('.recipe-search > .search-form > .filter-panel > .area');
    var searchobj = {
        SearchTerm: $(parent).find('input.search-terms').val(),
        TimeRange:
            [
                $(parent).find('div.time-range').slider("values", 0),
                $(parent).find('div.time-range').slider("values", 1)
            ],
        DifficultyRange: [
            $(parent).find('div.difficulty-range').slider("values", 0),
            $(parent).find('div.difficulty-range').slider("values", 1)
        ],
        Vegetarian: $(parent).find('input.vegetarian').is(':checked'),
        Vegan: $(parent).find('input.vegan').is(':checked'),
        DietTags: $(parent).find('input.diet-tags').val().split(' ')
    };

    $.ajax({
        type: "POST",
        url: $('.recipe-search > .search-form').attr('action'),
        data: searchobj,
        error: function () {
            alert("There was an error getting your search results, please try again");
        },
        success: function (result) {
            popresults(result);
        }
    });

这是 C# 模型:

任何想知道滑块是 JQuery UI 滑块的人。

在 Chrome 网络选项卡中,我可以看到请求已按预期发送

但是当遇到断点时查看调试观察 window,很明显它们没有正确绑定到模型

我再说一遍,我知道你们中的一些人会因为我确实改变了一些东西而批评我,我必须改变一些东西,但我没有改变任何东西,它完全按照预期工作,而且它不工作。

令我感到奇怪的是,请求中发送的数组(查看网络选项卡照片)似乎将这两个值作为单独的属性而不是数组中的值发送。

好吧,在 AJAX 代码中添加两行似乎解决了这个问题:

datatype: "json", traditional: true

现在它完全按预期工作了。