📅  最后修改于: 2023-12-03 15:06:49.580000             🧑  作者: Mango
在创建 Web API 控制器时,有时需要将参数以动态对象的形式进行传递,这时可以使用 C# 中的 param 或 [FromBody]dynamic 类型。本文将介绍如何使用这两种类型创建 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 类型可用于将动态对象作为参数传递到方法中。当请求体内容不固定且需要动态解析时,可以使用 [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 类型可用于解析动态请求体数据。在实际开发中,应根据实际情况选择适当的类型。