如何在Web API中使用Dictionary作为带有GET方法的参数?

时间:2018-11-16 04:50:59

标签: c# asp.net-web-api

这是我到目前为止尝试过的网址:

{{url}}/api/items?created[gte]=1&created[lte]=1

这是GET方法:

[HttpGet]
[Route("api/items")]
public IHttpActionResult GetItems([FromUri]Dictionary<string, int> created)
{
    var message = created["gte"];
    return Ok(""+message);
}

我无法访问来自查询参数的数据。

1 个答案:

答案 0 :(得分:0)

您可以像这样更新方法:

[HttpGet("api/items")]
public IActionResult GetItems(Dictionary<string, int> created)
{
    return Ok(created);
}

[HttpGet]也支持Route

在网址中:

  

https://localhost:44392/api/items?created.key1=1&created.key2=2&created.key3=3

页面中的结果:

{"key1":1,"key2":2,"key3":3}

语法:created.key1=1

  • created:这需要一个与我们在方法中键入的参数名称匹配的名称。

  • created.key1:我们在此字典中创建新密钥,密钥名称为key1

  • created.key1=1:我们定义密钥的值。该值为1

  • &created.key2=2:我们继续向字典添加新密钥,其密钥为key2,并且值为2

...与&created.key3=3