ASP.NET Core Web API支持使用查询参数进行路由。这是一种将路由参数传递到控制器方法的简单方法。如下所示:
在控制器上有一个路由特性,用于定义路由模板:
[Route("[controller]")] public class UserController : ControllerBase { ... }
在控制器方法上,使用[HttpGet]特性和路由模板来定义该方法的路由:
[HttpGet("[action]")]
public IEnumerable
在这个例子中,我们可以将查询参数“name”传递到GetUsers方法中,并在方法内部使用它来过滤返回的结果。
例如,请求URL可以是:http://localhost:5000/User/GetUsers?name=John。
这将调用GetUsers方法,并'John”作为查询参数传递给它。
代码示例:
[Route("[controller]")] public class UserController : ControllerBase { private readonly IUserService _userService; public UserController(IUserService userService) { _userService = userService; }
[HttpGet("[action]")]
public IActionResult GetUsers(string name)
{
var users = _userService.GetUsersByName(name);
return Ok(users);
}
}
在这个例子中,我们注入了一个名为“userService”的IUserService,并使用它来处理GetUsers方法。在GetUsers方法中,我们使用"name"作为查询参数,并使用它来调用UserService上的GetUsersByName方法。最后,我们返回一个包含用户列表的响应。