ASP.NET Web Api 属性路由和查询字符串

ASP.NET Web Api attribute routing and query string

我已经这样指定了我的路由:

[RoutePrefix("users")]
public class UsersController : ApiController
{
    [ResponseType(typeof(List<User>))]
    [Route("")]
    public IHttpActionResult GetAll()
    {

    }

    [Route("{birthdate}")]
    [ResponseType(typeof(List<User>))]
    public IHttpActionResult GetByBirthdate(DateTime birthdate)
    {

    }

但是当我使用这个url时:localhost/Users?birthdate=1907-04-19&api-version=2.0

我被重定向到 GetAll() 方法。这是为什么?

localhost/Users?birthdate=1907-04-19&api-version=2.0

这意味着您调用 url 参数生日

的用户

如果你想去第二个你需要使用

http://localhost/users/birthdate?birthdate=1907-04-19