我来自Java/Spring的背景,现在尝试将一些知识转移到ASP.NET Core 6。
在Spring中,可以在RestController
上根据查询参数的存在路由请求。
因此,具有uri:/students?firstName=Kevin
的HttpRequest
可以与具有uri:/students
的HttpRequest
路由到不同的控制器方法。
在ASP.NET Core 6中,经过一些示例和阅读Web API文档后,我无法确定是否可能实现相当的功能。
以下是我想要实现的内容,在使用两种方法和路由配置时,能否根据查询参数确定要调用哪个控制器方法?
[ApiController]
[Route("Students")]
public class StudentHomeProfileController : ControllerBase
{
[HttpGet] //Route here when no parameters provided
public async Task<ActionResult<IEnumerable<Student>>> GetStudentAsync()
{
/* Code omitted */
}
[HttpGet] //Route here when firstName query param provided
public async Task<ActionResult<IEnumerable<Student>>> SearchStudentAsync([FromQuery] string firstName)
{
/* Code omitted */
}
}
[HttpGet("search")]
添加到第二个方法中。我相信我需要使用这种方法来处理每个搜索查询参数的存在或缺失。 - Kevin Bowersox