Есть ли что-нибудь, что я пропустил? В запросе $ .ajax 'get' и 'post'. .net mvc modelbinder не смог корректно связать complexType в запросе get, но корректно связывается с почтовым запросом.DefaultModelBinder ведет себя по-разному с jquery ajax в режиме get и post
public class GridQuery
{
public GridQuery()
{
Draw = 1;
Start = 0;
Length = 10;
}
public int Draw { get; set; }
public int Start { get; set; }
public int Length { get; set; }
public GridSearch Search { get; set; }
}
public class GridSearch
{
public string Value { get; set; }
public string Regex { get; set; }
}
, а затем Ajax запрос кода
$.ajax({
url: 'DataGrid/GetData',
type: 'get',
data: {
start: 0,
draw: 10,
length: 15,
search: {
value: 'test',
regex: false
}
}
}).done(function (d) {
});
, а после запроса, search.value и search.regex связать правильно, но получить запрос, search.value и search.regex равна нулю.
не посылают сложный объект в GET! используйте POST – Shyju
Для GET он должен быть 'data: {start: 0, .... search.value: 'test', search.regex: false}' - точечная нотация (я предполагаю, что вы опущены некоторые важные детали, включая тот факт, что вы указываете 'contentType: 'json'' и строят данные) –
серверная сторона может получить значение, подобное этому запросу [" search [regex] "], которые доказывают, что значение отправлено на сервер , так что DefaultModelBinder просто не знает, как их связать? – Kratos