C# .NET CORE 3.1-[HttpPost]-无法将JSON值转换为Newtonsoft.JSON.Linq.JToken
我尝试在从angular 9到.NET API控制器的POST中使用多个参数C# .NET CORE 3.1-[HttpPost]-无法将JSON值转换为Newtonsoft.JSON.Linq.JToken,c#,json,C#,Json,我尝试在从angular 9到.NET API控制器的POST中使用多个参数 [HttpPost] public async Task<ActionResult<int>> PostPartner([FromBody] JObject body) { Partner partner = body["partner"].ToObject<Partner>(); User manager = body["manager
[HttpPost]
public async Task<ActionResult<int>> PostPartner([FromBody] JObject body)
{
Partner partner = body["partner"].ToObject<Partner>();
User manager = body["manager"].ToObject<User>();
...
我发现错误JSON值无法转换为Newtonsoft.JSON.Linq.JToken
发送请求时,将这些参数从angular 9
发件人:
返回this.http.post(environment.apirl+'api/Partners/',partner:partner);
到
返回this.http.post(environment.apirl+'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>();
...
[HttpPost]
公共异步任务后处理程序([FromBody]作业对象正文)
{
合作伙伴=主体[“合作伙伴”]。ToObject();
用户管理器=主体[“管理器”].ToObject();
...
JObject从使用Newtonsoft.Json.Linq开始
我知道我可以使用System.text.json,但我找不到任何适合我的post函数签名的示例
谢谢你的帮助
感谢不要使用
Newtonsoft.Json.Linq.JObject
,您应该能够使用一个模型类,它应该包含合作伙伴
和用户
属性,例如:
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;
...
[HttpPost]
公共异步任务后处理程序([FromBody]后处理程序模型)
{
合作伙伴=model.Partner;
用户管理器=model.manager;
...
[HttpPost]
public async Task<ActionResult<int>> PostPartner([FromBody] PostPartnerModel model)
{
Partner partner = model.Partner;
User manager = model.Manager;
...