InvalidOperationException: Action 'Coldairarrow.Api.Controllers.GetC_ProjectDataListController.GetC_ProjectDataList (Coldairarrow.Api)' has more than one parameter that was specified or inferred as bound from request body. Only one parameter per action ma
时间: 2024-01-21 18:17:35 浏览: 175
C#将String类型转换成任意基本类型.docx
这个错误通常发生在 ASP.NET Core Web API 中,表示您的控制器的一个操作具有多个参数被推断为从请求正文绑定。在 Web API 中,每个操作只能有一个请求正文参数。
要解决此问题,您需要将多个参数合并为一个类或模型,并将其作为操作的单个参数。示例代码如下:
```csharp
public class ProjectDataQueryModel
{
public int Id { get; set; }
public string Name { get; set; }
// 其他属性
}
[HttpPost]
public IActionResult GetC_ProjectDataList([FromBody] ProjectDataQueryModel query)
{
// 使用 query 参数执行操作
}
```
在上面的代码中,我们创建了一个名为 `ProjectDataQueryModel` 的类,它包含了我们需要的所有参数。然后我们将其作为操作的单个参数,并使用 `[FromBody]` 特性指示 ASP.NET Core 将请求正文反序列化为该类型的对象。
当您执行 Web API 调用时,您需要将请求正文中的所有数据都包含在单个 JSON 对象中,并将其作为参数发送。例如,如果您需要获取 ID 为 1 的项目数据,则可以发送以下 JSON 数据:
```json
{
"id": 1
}
```
希望这可以帮助您解决问题!
阅读全文