在 .NET WebAPI 中,我们可以通过标记控制器中的参数来从请求的 URL、查询字符串或请求体中获取数据。在本文中,我们将介绍三个常用的数据绑定属性:FromRoute、FromQuery 和 FromBody,并说明它们的用法。
FromRoute
FromRoute 属性用于从 URL 路由中获取数据。它可以应用于控制器的方法参数,以指定从路由中获取的数据。
例如,假设我们有一个处理用户信息的控制器,并且我们想获取特定用户的详细信息。我们可以在控制器方法的参数中使用 FromRoute 属性来指定我们要获取的用户ID。
[HttpGet("{id}")]
public IActionResult GetUserDetails([FromRoute] int id)
{
// 根据 id 获取用户的详细信息
// ...
}
在上面的示例中,[HttpGet("{id}")] 的 {id} 部分将被作为参数传递给 GetUserDetails 方法。注意,参数的名称必须与路由中的占位符名称相匹配。
FromQuery
FromQuery 属性用于从查询字符串中获取数据。查询字符串是 URL 中的一部分,通常用于传递额外的参数。
例如,假设我们有一个控制器方法,用于搜索用户列表。我们可以使用 FromQuery 属性来获取搜索关键字。
[HttpGet]
public IActionResult SearchUsers([FromQuery] string keyword)
{
// 根据关键字搜索用户
// ...
}
在这个例子中,我们可以通过以下方式调用 SearchUsers 方法:/users/search?keyword=john。在方法中,关键字参数将被绑定到查询字符串中的值 "john"。
FromBody
FromBody 属性用于从请求体中获取数据。请求体通常用于传递复杂的数据对象,如 JSON 或 XML。
例如,假设我们有一个控制器方法来创建新用户。我们可以使用 FromBody 属性来获取客户端发送的用户数据。
[HttpPost]
public IActionResult CreateUser([FromBody] User newUser)
{
// 创建新用户
// ...
}
在上面的示例中,[HttpPost] 表示该方法将处理 POST 请求,并且参数 newUser 将从请求体中绑定到 User 对象中。
总结
在 .NET WebAPI 中,我们可以使用 FromRoute、FromQuery 和 FromBody 属性来从 URL 路由、查询字符串和请求体中获取数据。这些属性使我们能够轻松地处理各种类型的数据,并提供了更灵活的参数绑定选项。
希望本文对您了解 .NET WebAPI 中的参数绑定有所帮助!如果您有任何问题或建议,请随时留言。
本文来自极简博客,作者:黑暗猎手,转载请注明原文链接:.NET WebAPI 基础 FromRoute、FromQuery、FromBody 用法