繁体   English   中英

ASP.NET Web API-从javascript json传递复杂类型

[英]ASP.NET Web API - pass a complex type from javascript json

我有一个ASP.NET Web API,它接受其中带有UserModel的POST:

[HttpPost]
public object Post(UserModel userModel)
{
    // some logic here
}

UserModel是一个复杂的类型,如下所示:

public class UserModel
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public AddressModel CurrentAddress { get; set; }
}

AddressModel模型如下所示:

public class AddressModel
{
    public string Country { get; set; }
    public string City { get; set; }
    public string Street { get; set; }
    public string Number { get; set; }
}

我正在尝试从JavaScript调用此API并发送JSON对象。 这是我要发送的JSON对象:

var user = {
    Id: 1,
    FirstName: 'Hello',
    LastName: 'World',
    CurrentAddress: {
        Country: 'Israel',
        City: 'Tel Aviv',
        Street: 'Shalom',
        Number: '5'
    }
};

我在Post方法中得到的是一个UserModel其中的UserModel字段填充了正确的信息,CurrentAddrent地址已初始化,但发送的值不存在。 父对象的值( UserModel对象可以)。

我在这里做错了什么? 如何将复杂对象发送到WebAPI模型?

要在MVC Web API操作中接收复杂的数据对象,必须将[FromBody]属性添加到POST参数中。

[FromBody]通知Web API在POST请求的正文中搜索参数的值。

 [HttpPost]
 public void Post([FromBody] UserModel userModel)
 {

 }

我进行了本地测试,并获得了值。

希望对您有所帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM