在ASP.NET Core中,使用[FromRoute]
特性来将路由参数绑定到控制器的动作方法参数。下面是一个包含代码示例的解决方法:
// 控制器代码
[Route("api/[controller]")]
[ApiController]
public class UserController : ControllerBase
{
// GET api/user/{id}
[HttpGet("{id}")]
public IActionResult GetUserById([FromRoute] int id)
{
// 根据id获取用户
User user = UserRepository.GetUserById(id);
if (user == null)
{
return NotFound();
}
return Ok(user);
}
// POST api/user
[HttpPost]
public IActionResult AddUser([FromBody] User user)
{
// 添加用户的逻辑
UserRepository.AddUser(user);
return Ok();
}
}
// 模型类代码
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
}
// UserRepository 代码(用于模拟数据库操作)
public class UserRepository
{
private static List _users = new List();
public static User GetUserById(int id)
{
return _users.FirstOrDefault(u => u.Id == id);
}
public static void AddUser(User user)
{
_users.Add(user);
}
}
在上面的代码中,[HttpGet("{id}")]
指定了GetUserById
动作方法的路由模板,其中{id}
是一个占位符,表示要传递的参数。通过[FromRoute]
特性,将路由参数绑定到id
参数上。
同样地,在AddUser
动作方法中,使用[FromBody]
特性将请求体中的JSON数据绑定到User
对象上。
这些代码示例演示了如何使用[FromRoute]
特性和模型绑定来处理路由参数和请求体中的数据。您可以根据自己的需求进行修改和扩展。
上一篇:ASP.NET Core: 注册按钮与OpenID Connect
下一篇:ASP.NET Core: [基于策略的授权] 未指定 authenticationScheme,并且找不到默认的 DefaultChallengeScheme。