在ASP.NET Core中,可以通过在路由模板中添加可选参数来实现使路由参数为空的功能,并发送查询参数。下面是一个示例代码:
首先,在Controller中定义一个带有可选参数的路由模板:
[HttpGet("example/{id?}")]
public IActionResult Example(int? id)
{
if (id.HasValue)
{
// 处理存在路由参数的情况
// ...
}
else
{
// 处理路由参数为空的情况
// ...
}
return Ok();
}
然后,在调用该接口时,可以将查询参数作为路由参数的一部分发送:
GET /example?param=value
或者,可以直接发送查询参数:
GET /example?id=1¶m=value
在上述示例中,id
参数是可选的,当调用/example
接口时,如果没有提供id
参数,id
参数将为空。在控制器中可以根据id.HasValue
来判断是否传递了路由参数,从而执行不同的逻辑。
注意:在路由模板中使用?
表示可选参数,即使不提供该参数,路由仍然会匹配到对应的控制器方法。