Web API模型绑定 - 复杂参数

时间:2015-06-21 09:56:44

标签: rest asp.net-web-api model-binding restful-url

我在查询字符串中收到了一个字符串

requestPermissions(new String[] {
    Manifest.permission.GET_ACCOUNTS,
    Manifest.permission.MANAGE_ACCOUNTS,
    Manifest.permission.AUTHENTICATE_ACCOUNTS,
    Manifest.permission.USE_CREDENTIALS,
}, 1);

我尝试用f[0][p]=zap&f[0][v][] = 110&f[0][v][]=500&f[1][p] = prih&f[1][v][] = 10000000&f[1][v][] = 30000000000 抓住它,但始终是string[]。如何将此参数表示给Web API以便它可以序列化?

我有一个解决方法,将Uri作为字符串读取,然后解析它,但它不适合单元测试,并希望更新它。

这样的结构甚至可能吗?

1 个答案:

答案 0 :(得分:0)

好的,我解决了这个问题,也许它可以帮助别人。

我需要一个类来表示收到的对象:

 public class Filter
 {
    private string p { get; set; }
    private string[] v { get; set; }
    private string cp { get; set; }
    private string[] cv { get; set; }
 }

在方法定义中,我需要:

public SubjectStats BusinessSubjects(string country, string start, string end, [FromUri] Filter[] f)

关键是在方法签名中将对象定义为Filter[]