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

Eut*_*rpy 1 c# http-get asp.net-web-api

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

[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)
    { }
Run Code Online (Sandbox Code Playgroud)

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

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

Dar*_*dan 6

您不必FromUriRoute属性内定义元素,它们将被绑定开箱即用:

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

}
Run Code Online (Sandbox Code Playgroud)

如果您使用的是 ASP.Net Core,那么您应该[FromQuery]改用