绑定到 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
现在它完全按预期工作了。
我有一个 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
现在它完全按预期工作了。