System.InvalidOperationException:“Action 'CrudSecond.Controllers.OrderController.Insert (CrudSecond)' has more than one parameter that was specified or inferred as bound from request body. Only one parameter per action may be bound from body. Inspect the following parameters, and use 'FromQueryAttribute' to specify bound from query, 'FromRouteAttribute' to specify bound from route, and 'FromBodyAttribute' for parameters to be bound from body: Customer c List<Vehicle> vehicles List<DeviceMiddle> deviceMiddles”
时间: 2024-04-18 11:32:00 浏览: 22
这个错误是由于你的 `OrderController.Insert` 方法有多个参数被指定或推断为绑定到请求体,但每个操作只能绑定一个参数。你可以检查以下参数,并使用 `FromQueryAttribute` 指定绑定到查询字符串,使用 `FromRouteAttribute` 指定绑定到路由参数,使用 `FromBodyAttribute` 指定绑定到请求体的参数:
- `Customer c`
- `List<Vehicle> vehicles`
- `List<DeviceMiddle> deviceMiddles`
请确保只有一个参数被标记为 `FromBodyAttribute`,以指定从请求体中绑定数据。如果你需要绑定多个复杂类型的数据,你可以创建一个包含这些参数的模型类,并将该模型类标记为 `FromBodyAttribute`。
相关问题
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
这个错误通常发生在 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
}
```
希望这可以帮助您解决问题!
异常详细信息: system.invalidoperationexception: 因 url 意外地以“/”结束,请
这段异常详细信息显示了一个 System.InvalidOperationException,它指示了一个错误操作,错误是由于一个 URL 意外地以“/”结束导致的。URL 是统一资源定位符的缩写,用于标识互联网上的资源。在这种情况下,URL 似乎不符合预期的格式要求,因为它以“/”结束。
当编写代码时,我们通常会使用 URL 来访问网络上的资源,如网站、图像或文件。为了确保正确的访问方式,URL 需要满足特定的格式要求。其中一个要求是 URL 不能以斜杠“/”结束。
如果我们在程序中遇到以上的异常信息,意味着我们在某个地方使用了一个异常的 URL。要解决这个问题,我们需要检查并修复导致问题的代码。
首先,我们需要找到引发异常的代码行。通常,异常信息会提供引发异常的具体位置,我们可以根据提供的堆栈跟踪信息来定位问题所在。
然后,我们需要检查使用 URL 的代码行。查看错误的 URL,确保它不是以斜杠“/”结尾。如果是以斜杠“/”结尾,我们需要修改代码,移除或更改结尾的斜杠,使 URL 符合格式要求。
最后,我们重新运行程序,确保不再出现该异常。
总之,system.invalidoperationexception 异常详细信息指示了出现错误操作,即 URL 意外地以斜杠“/”结尾。为了解决这个问题,我们需要定位并修复导致异常的代码行,确保 URL 符合预期的格式要求。