.NET CORE 3.1-[HttpPost]-JSON值无法转换为Newtonsoft.JSON.Linq.JTok



我尝试在从角度9到.NET API控制器的POST中使用多个参数

我得到错误JSON值无法转换为Newtonsoft.JSON.Linq.JToken

发送请求时,将这些参数从angular 9传递到我的http帖子

来自:

return this.http.post<any>(environment.apiUrl + 'api/Partners/',partner : partner);

return this.http.post<any>(environment.apiUrl + 'api/Partners/',{partner : partner,manager : manager});

对.NET控制器使用以下代码

[HttpPost]
public async Task<ActionResult<int>> PostPartner([FromBody] JObject body)
{
Partner partner = body["partner"].ToObject<Partner>();
User manager = body["manager"].ToObject<User>();
...

J使用Newtonsoft.Json.Linq的对象

我知道我可以使用System.text.json,但我找不到任何适合我的函数后签名的例子

感谢的任何帮助

感谢

您应该能够使用一个模型类,而不是使用Newtonsoft.Json.Linq.JObject,它应该同时包含PartnerUser属性,如:

public class PostPartnerModel
{
public Partner Partner { get; set; }
public User Manager { get; set; }
}

让你的行动像:

[HttpPost]
public async Task<ActionResult<int>> PostPartner([FromBody] PostPartnerModel model)
{
Partner partner = model.Partner;
User manager = model.Manager;
...

最新更新