Привязка модели со сложным типом не является обязательной, я просмотрел множество сообщений о переполнении стека, но ни одна из них не решила мою проблему.
У меня есть рабочий пример, где я непосредственно передаю коллекцию объектов, однако мне нужно указать [FromBody]
.
Если я прохожу через сложный объект с коллекцией, тогда коллекциявозвращается как ноль, я добавил пару свойств к MyObj
, и все связывается, кроме коллекции людей.
Кажется, что действует очень странно.
MVC
public async Task<IActionResult> OnPostAsync([FromBody] List<Person>
people){}
JAVASCRIPT
$.ajax({
url: '@Url.Page("People")',
data: JSON.stringify(people),
dataType: "json",
contentType: 'application/json; charset=utf-8',
type: "post",
beforeSend: function(xhr) {
xhr.setRequestHeader("XSRF-TOKEN",
$('input:hidden[name="__RequestVerificationToken"]').val());
}
});
Не работает
MVC
public async Task<IActionResult> OnPostAsync(MyObj contract){}
JAVASCRIPT
var complexObject = {
People: people,
};
var obj = { contract: complexObject };
var data2send = JSON.stringify(obj);
$.ajax({
url: '@Url.Page("People")',
data: data2send,
dataType: "json",
contentType: 'application/json; charset=utf-8',
type: "post",
beforeSend: function(xhr) {
xhr.setRequestHeader("XSRF-TOKEN",
$('input:hidden[name="__RequestVerificationToken"]').val());
}
});
example of what's data2send contains : "{"contract":{"People":[{"name": "bob"}}"
C #
public class MyObj
{
public List<Person> People {get; set;}
}