为什么我的 post JSON 对象没有被序列化?

Why isn't my post JSON object getting serialized?

为什么我的 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"
}

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

如何在 Web 中管理此 API2?

您的属性不是 public。你需要让他们 public

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

模型绑定器检查预期的对象类型并填充 public 属性。

引用Parameter Binding in ASP.NET Web API