WebApi автоматически десериализует JSON с типом параметра действия.Вы также можете вернуть сложные объекты, и WebApi будет сериализовать их в JSON перед их отправкой.
Так что, если ваше действие выглядит следующим образом
[Route("search")]
[HttpPost]
public SearchObject TestSearch([FromBody] SearchObject yourSearchObject)
{
return yourSearchObject;
}
И вы выполняете запрос на выборку JavaScript следующим образом
fetch('/api/search', {
method: 'POST',
data: JSON.stringify({
distributionType: 'some type',
distributionTemplate: 'a template',
productLine: 'the product line',
studyOfOccurence: 'the study',
countyOfOccurence: 'a country'
}),
headers: {
'content-type': 'application/json'
}
})
.then(res => res.json())
.then(data => console.log(data))
Оператор console.log(data)
должен вывести
{
distributionType: 'some type',
distributionTemplate: 'a template',
productLine: 'the product line',
studyOfOccurence: 'the study',
countyOfOccurence: 'a country'
}
В прошлом у меня были проблемы, когда WebApi будет пытаться вернуть XML вместо JSON или попытаться проанализировать данные из запроса как XML вместо JSON.Установив заголовок типа контента на application / json, вы говорите WebApi проанализировать данные как JSON.Вы также можете установить заголовок 'accept' для application / json, если обнаружите, что действие возвращает данные в виде XML