的Http失败响应http://localhost:5000/api/users/siteUsers/[object%2



我正试图在angular 11和.netcore 3.1 web api中添加一个多选下拉列表。当我提交下拉列表时,会出现这样的错误。"的Http失败响应http://localhost:5000/api/users/siteUsers/[object%20Object],[object%20Abject],[object%20Object]:400错误请求";

后端

[Route("siteUsers/{id}")]

我如何从前端传递数据。

编辑:

角度服务.ts文件

CreateSiteUsersAsync(data: FormData, id: number) {
return this.http.post(`${this.baseUrl}/${this.basePath}/siteUsers/${id}`, data);
}

.ts文件

async onSubmitHandler() {
const data = { ...this.userForm.value};
await this.userService.CreateSiteUsersAsync(data,data.siteCode).toPromise();
}

函数中的一些错误。

正在指定第一个Route,但不是Http方法。意味着默认方法为Get。不能将表单数据传递给Get方法。它应该是PostPut。所以第一件事是添加一个http方法:

[Route("siteUsers/{id}")]
[HttpPost]

或者更优雅:

[HttpPost("siteUsers/{id}")]

接下来是从中获取数据的receival属性。有四个选项[FromRoute][FromForm][FromQuery][FromBody]

默认情况下,C#使用[FromQuery]。因此,对于iddata,您都需要指定搜索该数据的位置。参见以下代码:

[HttpPost("siteUsers/{id}")]
public IActionResult MyEndpoint([FromRoute] id, [FromForm] data)
{
...

return Ok();
}

您也可以使用[FromBody]而不是[FromForm]标记,因为从技术上讲,两者都来自正文。

相关内容

  • 没有找到相关文章

最新更新