是否有可能从网址映射数组?

时间:2019-11-14 17:45:33

标签: c# asp.net core

我可以转换此网址吗?

http://localhost:4200/api/hoursRange=[0,12]

to int [] HoursRange 我正在使用asp.net core 2.2

我尝试了以下代码:

[HttpGet]
[Route("api")]
public IActionResult Get([FromQuery]int[] HoursRange)
{
    // action
}

但这不起作用

2 个答案:

答案 0 :(得分:1)

请查看Model Binding

中的标题收藏集

它显示了实现此目标的几种方法。

Microsoft文档中显示的几种方法是:

hoursRange=0&hoursRange=12

使用索引器

hoursRange[0]=0&hoursRange[1]=12

答案 1 :(得分:1)

解决方案1: 默认模型联编程序期望使用以下网址:

http://localhost:4200/api/hoursRange=1&hoursRange=2&hoursRange=3

仅适用于这种方法:

[HttpGet]
[Route("api")]
public IActionResult Get([FromQuery]int[] HoursRange)
{
    // action
}

解决方案2: 为此,但使用不同的方法,但使用asp.net mvc

需要像这样更改方法名称

http://localhost:54119/api/MultipleData?ids=24041&ids=24117

为了成功绑定到:

[HttpGet]
[Route("api")]
public ActionResult MultipleData(int[] ids)
{
    ...
}

解决方案3: 有关其他经过验证的解决方案,请检查link

解决方案4: 索引器也是一种方法,但不是一种有效的方法

http://localhost:4200/api/hoursRange[0]=24041&hoursRange[1]=24117&hoursRange[2]=24117

信息

请检查更多定制 customizing-query-string-parameter-binding-in-asp-net-core-mvc