首页 >web前端 >js教程 >如何将 JSON POST 数据作为对象传递给 ASP.NET MVC4 中的 Web API 方法?

如何将 JSON POST 数据作为对象传递给 ASP.NET MVC4 中的 Web API 方法?

Barbara Streisand
Barbara Streisand原创
2024-11-09 14:13:02344浏览

How to Pass JSON POST Data as an Object to a Web API Method in ASP.NET MVC4?

将 JSON POST 数据作为对象传递给 Web API 方法

在 ASP.NET MVC4 Web API 中,您可能会遇到以下情况:包含 JSON 数据的 POST 请求需要作为对象传递给操作方法。但是,如果没有正确的配置,操作方法的参数可能包含 null 属性。要解决此问题,您必须执行以下步骤:

1.将 Content-Type 指定为“application/json”:

发送请求时,请确保 Content-Type 标头设置为“application/json”。这通知服务器数据是 JSON 格式。

2.使用 JSON.stringify 方法

在客户端代码中,使用 JSON.stringify 方法将 JSON 数据转换为 JSON 字符串。此步骤对于模型绑定器将 JSON 数据绑定到类对象至关重要。

示例:

var customer = { contact_name: "Scott", company_name: "HP" };
$.ajax({
    type: "POST",
    data: JSON.stringify(customer),
    url: "api/Customer",
    contentType: "application/json"
});

3.使用 [FromBody] 装饰 Action 方法参数:

在 Web API 操作方法中,使用 [FromBody] 装饰将接收 JSON 数据的参数。该属性表示数据应从请求正文绑定。

示例:

public IActionResult Post([FromBody] Customer customer)
{
    // ...
}

4.发布复杂对象

如果您的视图模型类包含复杂属性(例如列表或嵌套类),则适用相同的原则。确保客户端代码构建与类结构匹配的对象,并将其作为具有正确 Content-Type 的 JSON 数据发送。

故障排除:

  • 如果模型绑定适用于某些属性,但不适用于其他属性,请检查操作方法参数是否用[FromBody].
  • 如果您没有显式设置 Content-Type,请确保您的客户端代码使用正确的方法(例如 $.ajax,contentType 设置为“application/json”)。

以上是如何将 JSON POST 数据作为对象传递给 ASP.NET MVC4 中的 Web API 方法?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn