ASP.NET HttpPost方法。无法正确接收数据

时间:2018-11-12 18:41:19

标签: c# asp.net .net

有一个项目,其中声明了Node类

public class Node
{
    public string id { get; set; }
    public int group { get; set; }

    public Node( string id, int group)
    {
        this.id = id;
        this.group = group;
    }

    public Node()
    {
    }
}

还有方法,它必须接收该对象并对其进行处理

[HttpPost]
public IActionResult Create(Node node)
{
    //does stuff here
    return NoContent();
}

我不明白的一件事是,在这种方法中,如何正确反序列化我的JSON对象。我的意思是我试图发送看起来像这样的JSON:{“ id”:“ TEST”,“ group”:1},但是接收到的对象的ID为null,group =0。我不明白,我该怎么办?做错了吗?

2 个答案:

答案 0 :(得分:0)

默认情况下,ASP.net中的操作方法模型绑定正在寻找application/x-www-url-formencoded编码的表单值。

您正在请求的正文中发布JSON,因此您需要使用[FromBody]属性。

[HttpPost]
public IActionResult Create([FromBody] Node node)
{
    //does stuff here
    return NoContent();
}

答案 1 :(得分:0)

如果您一直在努力反序列化正文,请尝试手动进行操作,以查看是否确实正确发送了它。

>>> l = [1,2,3]
>>> l == sorted(l)
True
>>> l = [2,1,3]
>>> l == sorted(l)
False