2017-02-17 13 views
0

Все соответствующий код:MVC модель является нулевым при размещении в ASP.Net JSON Ядра

//JSON data 
var dataType = 'application/json; charset=utf-8'; 
var data = { 
    FirstName: 'Andrew', 
    LastName: 'Lock', 
    Age: 31 
} 

console.log('Submitting form...'); 
$.ajax({ 
    type: 'POST', 
    url: '/Diary/Save', 
    dataType: 'json', 
    contentType: dataType, 
    data: data, 
    success: function (result) { 
     console.log('Data received: '); 
     console.log(result); 
    } 
}); 


[HttpPost] 
public IActionResult Save([FromBody] Person person) 
{ 
    return Json(person); 
} 



public class Person 
{ 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public int Age { get; set; } 
} 

«человек» в методе Save всегда нуль. Это должно сработать ... возможно, это вопрос настроек?

services.AddMvc(options => 
     { 
     }); 
+0

я мне нужно внести изменения здесь делать это в методе Ajax .. данные: JSON.stringify (dataType), затем в действии контроллера я вынимаю [FromBody] –

+0

Я думаю, что есть еще одна jiggery, которую вы должны делать в ядре .net, чтобы заставить его работать без [FromBody] (Я все-таки пробовал ваше предложение, но все равно все нули) – Paul

+0

Вы отправляете сообщение '/ Diary/Index', но функция называется' Save'. Это просто ошибка в сообщении здесь или вы используете этот конкретный код? – Niklas

ответ

4

Вы должны stringify данные, которые вы отправляете на сервер, чтобы преобразовать его в формат JSON, потому что это заголовок типа содержимого вы указали::

data: JSON.stringify(data) 
+0

Какой АКТУАЛЬНЫЙ ад ?! Я потратил несколько часов на это, обойдя различные комбинации этого - ранее я добавил JSON.stringify, и это не сработало ... так что вы сделали? Давай, ты здесь, ты здесь? – Paul