【问题标题】:How to post JSON data in MVC Visual Studio 2015如何在 MVC Visual Studio 2015 中发布 JSON 数据
【发布时间】:2014-11-26 14:21:00
【问题描述】:

我正在尝试在 Visual Studio 2015 预览版中将 json 对象发布到 MVC。但是,数据似乎没有绑定到操作方法参数。在以前版本的 MVC 中曾经注册过一个 JsonValueProviderFactory 来处理这个问题,但我似乎在 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

【问题讨论】:

  • 给我们看一些代码?你正在使用什么版本的 MVC(显示你的 project.json)?
  • 你说得对,我已经更新了帖子。我正在使用 Visual Studio 2015 Preview(我不确定发布的确切版本)

标签: asp.net-core visual-studio-2015 asp.net-core-mvc


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多