从 WebAPI 中的 URI 解析嵌套查询字符串
Parsing nested query string from URI in WebAPI
我正在从 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()
路线,但如果这是唯一可行的选择,我愿意。
理想情况下,合并字段是 属性 of Data
:
var referral = model.Data.Merges.Referral;
希望有人能帮忙,谢谢。
就这样做吧-
public class CallbackData
{
public string Id { get; set; }
public A Merges { get; set; }
}
public class A
{
public string REFERRAL { get; set; }
}
现在为我工作。
我正在从 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()
路线,但如果这是唯一可行的选择,我愿意。
理想情况下,合并字段是 属性 of Data
:
var referral = model.Data.Merges.Referral;
希望有人能帮忙,谢谢。
就这样做吧-
public class CallbackData
{
public string Id { get; set; }
public A Merges { get; set; }
}
public class A
{
public string REFERRAL { get; set; }
}
现在为我工作。