ajaxを使用してフォームをコントローラーに送り返すために、ほぼすべてを試しました。
モデルを文字列だけに単純化しました。
- ajax はすべてのフォーム データを正しくプルしています。
- 私も serilaizeArray() を持っています。
モデルと呼ばれる私のオブジェクトは毎回nullです(他のパラメーターはうまくマップされます、つまりページ、ソート...)。私は何が欠けていますか?
アヤックス:
...
var model = $('#advancesearchform').serialize();
var request = $.ajax({
type: "POST",
url: "/DAM/Home/_ImageSearchResult",
cache: false,
traditional: true,
contentType: 'application/json; charset=utf-8',
dataType: 'json',
data: JSON.stringify({
page: page,
itemsperpage: itemsperpage,
sort: sort,
sortdir: sortdir,
model: model
}),
success: function (data) {
$('#imagesearchresults').html(data);
}
});
JSON.stringfy :
{\"page\":null,\"itemsperpage\":8,\"sort\":\"Project\",\"sortdir\":\"ASC\",\"model\ ":\"FileName=123&OriginalFileName=sas&Height=asas&Width=asas&DepartmentId=9b4463cd-c184-e211-9244-005056887208&ClassId=28de9d15-c284-e211-9244-005056887208\"}
コントローラ:
[HttpPost]
public PartialViewResult _ImageSearchResult(int? page, int itemsperpage, string sort, string sortdir, AdvanceSearchFilters model)
{
}
モデル:
public class AdvanceSearchFilters
{
public string FileName { get; set; }
public string OriginalFormat { get; set; }
public string Width { get; set; }
public string Height { get; set; }
public string MediaSource { get; set; }
public string DepartmentId { get; set; }
public string ClassId { get; set; }
public string ThemeId { get; set; }
}