具有复杂类型

时间:2017-08-31 15:55:36

标签: rest asp.net-web-api get

我想允许API的用户发送将在db上运行多个查询的GET请求,然后返回结果。

我有一个像这样的查询模型

public class QueryModel 
{
   public int A {get;set;}
   public int B {get;set;}
   public int C {get;set;} 
}

我有一个带有这样的Get方法的控制器 -

public async Task<IActionResult> Get(List<QueryModel> queryModels)
{
   foreach(var queryModel in queryModels)
   {
      // some logic to search the db
   }
   // combine the results and return

}

这对我不起作用,但我不知道我的查询字符串是错误还是方法错误。

我尝试了很多

的变体
?model={[{1,2,3},{1,2,3}]}

但它们不起作用。

1 个答案:

答案 0 :(得分:1)

你可以使用这样的结构:

\Get?model[0].A=1&model[0].B=2&model[0].C=3&model[1].A=4&model[1].B=5&model[1].C=6

几乎忘了,加上FromUri:

public async Task<IActionResult> Get([FromUri] List<QueryModel> model)
{
 ...
}

如果这对你有用,请告诉我。