📜  使用 param 或 [FromBody]dynamic 类型创建 Web API 控制器 - C# (1)

📅  最后修改于: 2023-12-03 15:06:49.580000             🧑  作者: Mango

使用 param 或 [FromBody]dynamic 类型创建 Web API 控制器 - C#

介绍

在创建 Web API 控制器时,有时需要将参数以动态对象的形式进行传递,这时可以使用 C# 中的 param 或 [FromBody]dynamic 类型。本文将介绍如何使用这两种类型创建 Web API 控制器。

使用 param 类型创建 Web API 控制器
何时使用

param 类型可用于将多个同类型参数传递到方法中。当参数数量未知或可变时,可以使用 param 类型。

示例代码

以下示例代码演示了如何使用 param 类型创建 Web API 控制器。

[HttpGet]
public IHttpActionResult GetNames(params string[] names)
{
    return Ok(names);
}
示例结果

执行上述代码后,可以通过以下 URL 将多个参数传递给 GetNames 方法:

/api/names?names=John&names=Jane&names=Mary

GetNames 方法将返回包含所有参数的数组。

使用 [FromBody]dynamic 类型创建 Web API 控制器
何时使用

[FromBody]dynamic 类型可用于将动态对象作为参数传递到方法中。当请求体内容不固定且需要动态解析时,可以使用 [FromBody]dynamic 类型。

示例代码

以下示例代码演示了如何使用 [FromBody]dynamic 类型创建 Web API 控制器。

[HttpPost]
public IHttpActionResult PostData([FromBody]dynamic data)
{
    return Ok(data);
}
示例结果

在请求体中发送以下 JSON 数据:

{
    "name": "John",
    "age": 30
}

上述 JSON 数据会被解析为一个动态对象,并传递给 PostData 方法。方法将返回与 JSON 数据相同的结果。

总结

本文介绍了如何使用 param 或 [FromBody]dynamic 类型创建 Web API 控制器。param 类型可用于传递多个同类型参数,[FromBody]dynamic 类型可用于解析动态请求体数据。在实际开发中,应根据实际情况选择适当的类型。