Я тоже боролся с этим, потому что думал, что это очень странно.В ASP.NET Core 2.0 вы должны добавить [FromBody]
перед вашими параметрами в вашем действии. Здесь - вот почему.
public ActionResult CreatePerson([FromBody] string name)
Для ответа Person вам может понадобиться это
return Json(new {person = person});
Прочитайте его в своем Ajax, как это:
var person = response.person
ОБНОВЛЕНИЕ
Поскольку вы хотите передать объект person, сделайте следующее
var myPerson = {
"Name" = "personName"
};
Передайте его следующим образом
data: JSON.stringify(myPerson)
Иполучите это к контроллеру как это:
public ActionResult CreatePerson([FromBody] Person myPerson)