WebApi 使用 FromBody 接收包括动态列表的参数

WebApi receive parameters including dynamic list using FromBody

我正在尝试在 webapi

中接收以下 JSON 格式
    {   
    "name": "Matt",
    "age": "24",
    "payload": {"key1": "value1", "key2": "value2"}
    }

这里的负载是动态的,它可以有任何键和值。

我的 webapi 看起来像

    public class Person
    {
        public string name{ get; set; }
        public int age{ get; set; }
        public string payload { get; set; }
    }

    public async Task<HttpResponseMessage> Post([FromBody]Person value)
    {
      // Getting name and age but not payload.
    }

问题

FromBody是获取这个值的方法吗?如果是,我在这里缺少什么。如果否,此类输入的最佳做法是什么?

[FromBody] 应该使用。您可以使用 IDictionary<string,string> 作为负载。

public class Person
{
    public string name{ get; set; }
    public int age{ get; set; }
    public IDictionary<string,string> payload { get; set; }
}


public async Task<HttpResponseMessage> Post([FromBody]Person value)
{
    var value1 = value.payload["key1"];
    var value2 = value.payload["key2"];

}