如何在MVC Visual Studio 2015中发布JSON数据

Bjo*_*orn 4 asp.net-core-mvc visual-studio-2015 asp.net-core

我试图在visual studio 2015预览中将json对象发布到MVC.但是,数据似乎没有绑定到action methods参数.以前在MVC的早期版本中注册了一个JsonValueProviderFactory来处理这个,但我似乎无法在MVC6中找到它?设置是否已更改,这在以前的版本中是否已经开箱即用?

基本上我有一个控制器方法

public ActionResult Save(Person person)
{
   ...
}
Run Code Online (Sandbox Code Playgroud)

我试图从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"
    })
Run Code Online (Sandbox Code Playgroud)

在以前版本的MVC中,json对象被映射到c#参数,请参阅此文章,例如http://webcognoscere.com/post/How-to-POST-a-JSON-object-to-a-Controller-Action的.aspx

Eil*_*lon 9

添加[FromBody]到参数.在MVC 6中,MVC和Web API的逻辑被合并到一个系统中.这意味着需要在帖子正文中反序列化为JSON的内容需要在action方法的参数中明确注明:

public ActionResult Save([FromBody] Person person)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)