Как да публикувате JSON данни в MVC Visual Studio 2015

Опитвам се да публикувам json обекти в MVC във визуализация на визуално студио 2015. Данните обаче изглежда не се свързват с параметъра на методите на действие. Имаше JsonValueProviderFactory, регистриран в предишни версии на MVC, който обработваше това, но изглежда не мога да го намеря в MVC6? Промени ли се настройката, това работеше извън кутията в предишните версии?

По принцип имам метод на контролер

public ActionResult Save(Person person)
{
   ...
}

Което се опитвам да извикам от javascript:

var personData = { Name : 'John Doe' };
$.ajax({
        url: '@Url.Content("~/Person/Save")',
        type: "POST",
        data: JSON.stringify(personData ), 
        dataType: "json", 
        contentType: "application/json; charset=utf-8"
    })

В предишните версии на MVC обектът json беше съпоставен с параметъра c#, вижте тази статия например http://webcognoscere.com/post/How-to-POST-a-JSON-object-to-a-Controller-Action.aspx


person Bjorn    schedule 26.11.2014    source източник
comment
Покажете ни някакъв код? Каква компилация на MVC използвате (покажете вашия project.json)?   -  person AndersNS    schedule 27.11.2014
comment
Прав си, актуализирах публикацията. Използвам Visual Studio 2015 Preview (не съм сигурен точната компилация, която е изпратена)   -  person Bjorn    schedule 27.11.2014


Отговори (1)


Добавете [FromBody] към параметъра. В MVC 6 логиката от MVC и Web API беше обединена в една система. Това означава, че съдържанието, което трябва да бъде десериализирано като JSON от тялото на публикация, трябва изрично да бъде отбелязано в параметъра на метода за действие:

public ActionResult Save([FromBody] Person person)
{
    ...
}
person Eilon    schedule 02.12.2014