簡體   English   中英

.NET CORE 3.1 - [HttpPost] - JSON 值無法轉換為 Newtonsoft.Json.Linq.JToken

[英].NET CORE 3.1 - [HttpPost] - The JSON value could not be converted to Newtonsoft.Json.Linq.JToken

我嘗試在從 angular 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>();
    ...

使用Newtonsoft.Json.Linq生成 JObject

我知道我可以使用 System.text.json 但我只是沒有找到任何適合我的 post 函數簽名的例子

任何幫助表示贊賞

謝謝

您應該能夠使用包含PartnerUser屬性的模型類,而不是使用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;
  ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM