.NET WebAPI 基础 FromRoute、FromQuery、FromBody 用法

黑暗猎手 2024-06-28 ⋅ 23 阅读

在 .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 中的参数绑定有所帮助!如果您有任何问题或建议,请随时留言。


全部评论: 0

    我有话说: