Din*_*ino 1 c# asp.net-web-api asp.net-core-webapi
我想要一个具有多个 GET 的控制器,一个用于所有,一个带有 int 参数,另一个带有字符串参数。下面的例子仍然给我错误:
[ApiController]
[Route("[controller]")]
public class StudentsController : ControllerBase
{
[HttpGet]
public IEnumerable<Student> Get()
{
return GetStudents();
}
[HttpGet("{id}")]
public Student Get(int id)
{
return GetStudents().FirstOrDefault(s=> s.id == id);
}
[HttpGet("{name}")]
public Student Get(string name)
{
return GetStudents().FirstOrDefault(s=> s.name == name);
}
}
Run Code Online (Sandbox Code Playgroud)
编辑 当前我收到以下错误
和在 url 中被同等对待int,string因此无法区分方法。您需要拥有路线的附加部分,例如[HttpGet("id/{id}")]and [HttpGet("name/{name}")],或者使用查询字符串。
或者,您可以使用单个方法并尝试将参数解析为int,如果成功,则按 id 检索,否则按名称检索。
| 归档时间: |
|
| 查看次数: |
1770 次 |
| 最近记录: |