我想知道我们如何设计.net核心api控制器以接受如下所示的数组值
http://localhost:32656/api/Values?str[]="abc"&str[]="xyz"
我在网上做了一些研究,发现的唯一两个选择是我需要在数组内部传递索引 例如:-http://localhost:32656/api/Values?str[0]=“ abc”&str [1] =“ xyz”(在数组内部传递索引)
或者我需要将数组作为重复的查询字符串传递。 例如:-http://localhost:32656/api/Values?str=“ abc”&str =“ xyz”(将其作为重复的查询字符串传递)
但是我想看看将数组发送到.net core 2.1 api控制器的其他可能选项。
答案 0 :(得分:2)
您可以在此处利用FromQuery
属性,将Name
属性指定为str[]
:
public IActionResult Values([FromQuery(Name = "str[]")] List<string> strValues)
{
...
}
如果您还想剥离每个值的"
,则可以使用Select
。这是一个示例:
public IActionResult Values([FromQuery(Name = "str[]")] List<string> strValues)
{
var strValuesWithoutQuotes = strValues.Select(x => x.Trim('"'));
...
}
答案 1 :(得分:0)
这是我们的操作方式:
[Route("api/v1/[controller]")]
public class TestController : Controller
{
[HttpGet]
public async Task Get(List<string> stringValues)
{
...
}
}
然后用http://localhost/api/v1/test?stringValues=string1&stringValues=string2
stringValues应该在查询字符串中具有值列表