在ASP.NET Core Web API中,我们可以使用FromQuery
属性来绑定HTTP GET请求中的参数。当我们需要绑定空数组和非空数组时,可以通过以下方式进行处理。
在控制器的方法中,将参数声明为数组类型,并使用FromQuery
属性进行绑定。
[HttpGet]
public IActionResult GetItems([FromQuery] int[] ids)
{
// 处理非空数组
return Ok();
}
当客户端发送HTTP GET请求时,可以使用以下URL来传递数组参数:
/api/items?ids=1&ids=2&ids=3
在上面的示例中,ids
参数将被绑定为包含值[1, 2, 3]的非空数组。
要绑定空数组,我们需要使用可选参数和Default
属性。
[HttpGet]
public IActionResult GetItems([FromQuery(Name = "ids")] int[]? ids = null)
{
ids ??= new int[0]; // 设置默认值为空数组
// 处理空数组
return Ok();
}
在上面的示例中,我们使用了可选参数ids
并指定了FromQuery
属性的Name
属性来映射查询字符串中的参数名。然后,我们使用空合并运算符??
将ids
设置为一个新的空数组,以防止参数为null。
当客户端发送HTTP GET请求时,可以使用以下URL来传递空数组参数:
/api/items
在上面的示例中,ids
参数将被绑定为一个空数组。
这样,我们就可以根据数组的内容是空还是非空来选择不同的处理方式。