在 ASP.NET Core 3 中,可以使用 [FromQuery]
、[FromRoute]
、[FromBody]
等属性来绑定参数。对于带有连字符的名称,可以使用 [FromQuery(Name = "param-name")]
、[FromRoute(Name = "param-name")]
、[FromBody(Name = "param-name")]
来指定参数的名称。
以下是一个示例代码,演示了如何在 ASP.NET Core 3 中处理带有连字符的名称的参数:
[ApiController]
[Route("api/[controller]")]
public class UsersController : ControllerBase
{
[HttpGet]
public IActionResult Get([FromQuery(Name = "user-id")] int userId)
{
// 处理逻辑
return Ok($"User ID: {userId}");
}
[HttpPost]
public IActionResult Post([FromBody(Name = "user-name")] string userName)
{
// 处理逻辑
return Ok($"User Name: {userName}");
}
}
在上述代码中,Get
方法使用了 [FromQuery(Name = "user-id")]
来指定参数名称为 "user-id"
,这样就可以正确地绑定查询参数中的 "user-id"
到 userId
参数。同样地,Post
方法使用了 [FromBody(Name = "user-name")]
来指定参数名称为 "user-name"
,这样就可以正确地从请求体中绑定 "user-name"
属性到 userName
参数。
通过使用 [FromQuery(Name = "param-name")]
、[FromRoute(Name = "param-name")]
、[FromBody(Name = "param-name")]
等属性,可以解决带有连字符的名称在路由或绑定参数中的问题。