[英]MVC Model binding not working as expected on complex type from AJAX request
[英]Model Binding to AJAX suddenly not working
我有一個AJAX POST請求,它應該將用戶的搜索過濾器發送到控制器操作並返回適當的結果。 這完美地工作,然后它就停止了工作。 我沒有改變一件事,它工作正常,模型完全按照預期綁定,然后它剛剛破壞,現在它只會綁定到非數組項。
這是我完整的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網絡標簽中,我可以看到請求按預期發送
但是,當遇到斷點時查看調試監視窗口,很明顯它們沒有正確綁定到模型
我會重復一遍,而且我知道你們中的一些人會在這個問題上叫我說我確實改變了一些東西,我必須這樣做,但我並沒有改變它與預期完全一致的工作,而且它沒有用。
確實令我感到奇怪的是,請求中發送的數組(查看網絡選項卡照片)似乎是將兩個值作為單獨的屬性而不是數組中的值發送。
好吧,似乎在AJAX代碼中添加兩行修復了這個問題:
datatype: "json", traditional: true
現在它完全按預期工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.