2016-03-09 51 views
1

我想收到以下JSON格式中的WebAPI的WebAPI接收參數包括使用FromBody

{ 
    "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得到這個值的方式?如果是的話,我在這裏錯過了什麼。如果不是,那麼這些投入的最佳做法是什麼?

回答

1

是應該使用[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"]; 

}