我从MailChimp回调中获取以下示例数据:
type: subscribe
data[id]: 5h3872nb33
data[merges][REFERRAL]: 83HJS
它在URI中编码,如:
?type=subscribe&data%5Bid%5D=65761e38d6&data%5Bmerges%5D%5BREFERRAL%5D=3TVPQ
或
?type=subscribe&data[id]=65761e38d6&data[merges][REFERRAL]=3TVPQ
我的控制器如下
public bool Get([FromUri]CallbackModel model)
{
// Process request
}
使用模型:
public class CallbackModel
{
public string Type { get; set; }
public CallbackData Data { get; set; }
}
public class CallbackDataModel
{
public string Id { get; set; }
}
我已经省略了各种尝试,以良好的方式获得data[merges][REFERRAL]
,但我开始相信它不可能。
我试图避开Request.GetQueryNameValuePairs()
路线,但愿意这是唯一可行的选择。
理想情况下,合并字段是Data
的属性:
var referral = model.Data.Merges.Referral;
希望有人能提供帮助,谢谢。
答案 0 :(得分:1)
就这样做 -
public class CallbackData
{
public string Id { get; set; }
public A Merges { get; set; }
}
public class A
{
public string REFERRAL { get; set; }
}
现在为我工作。