如何在 ASP.NET 核心 2.0 控制器上同时拥有 'get by id' 和 'get by name' 路由?

How to have both 'get by id' and 'get by name' routes on ASP.NET core 2.0 controller?

我正在编写一个小型 Web API 控制器。目前我已经路由了一个

[HttpGet("{id}"}]

path 并且工作正常:localhost:8080/Controller/1 returns id 等于 1 的项目。

问题是我正在尝试添加一个 'get by name' 请求:

[HttpGet("{name}")]

我该怎么做呢?

感谢您的宝贵时间

在这个确切的示例中,您可以放入一个路由约束,指示 id 是一个整数。之后它应该正确路由。

[HttpGet("{id:int}")]
public string GetById(int id)
{
   return id.ToString();
}

[HttpGet("{name}")]
public string GetByName(string name)
{
   return name + " name";
}