为什么我的POST JSON对象没有序列化?我正在使用Web API 2.0。我的控制器路线如下所示:

[HttpPost]
[Route]
public async Task<IHttpActionResult> AddUserAsync([FromBody] User user)
{
    //do some stuff
}


我的User对象如下所示:

public class User
{
    Guid Id { get; set; }

    string Name { get; set; }
}


当我传递以下JSON对象时,Id和Name道具将使用空值序列化:

{
    "Id": "895C4492-B751-462C-9738-C6CB4E94E21F",
    "Name": "Joe System"
}


我需要用User或类似的东西装饰[DataContract]吗?

如何在Web API 2中进行管理?

最佳答案

您的财产不公开。您需要将其公开

public class User {
    public Guid Id { get; set; }
    public string Name { get; set; }
}


模型绑定程序检查预期的对象类型并填充公共属性。

参考Parameter Binding in ASP.NET Web API

10-06 10:13
查看更多