C# Web API 查询字符串中的可选参数

C# Web API Optional parameters in query string

我的控制器中有这段代码:

[HttpGet]
[Route("team={team}&model={model}&date={date}&distance={distance}")]
public IHttpActionResult FindVehicle([FromUri]string team = "", [FromUri]string model = "", [FromUri]DateTime? date = null, [FromUri]double distance = 0.0)
    { }

查询字符串的所有参数都可以是可选的,这就是我使用默认值的原因。

但是,我不确定路由应该是什么,因为现在,当我不指定 model 参数时,它在端点中的值最终为 "model",而不是 "".

您不必在 Route 属性中定义 FromUri 元素,它们将立即绑定:

[HttpGet]
[Route("route_name")]
public IHttpActionResult FindVehicle([FromUri]string team = "", [FromUri]string model = "", [FromUri]DateTime? date = null, [FromUri]double distance = 0.0)
{ 

}

如果您正在使用 ASP.Net 核心,那么您应该使用 [FromQuery] 而不是