如何使用 axios.put 发送 JSON 到 ASP.NET 控制器

How to use axios.put to send JSON to ASP.NET controller

我正在尝试使用以下客户端代码发送包含 JSON 数据的 PUT 请求:

const url = new URL(`${process.env.REACT_APP_API}/datas/edit/${id}`);
axios.put(url, data);

而在服务器端,当我试图查看 HttpRequest.Form 时,控制器抛出 InvalidOperationException 异常。消息是 Incorrect Content-Type: application/json;charset=UTF-8.

[HttpPut("edit/{id}")]
public void Edit([FromRoute] int id, [FromBody] Data data)
...

我也试过 axios.put(url, JSON.stringify(data)); 但是服务器 returns 415.

编辑:我尝试使用 Postman 而不是我的前端:

public class A { public int /*or string*/ A1 { get; set; } }
[HttpPut("edit/{id}")]
public void EditQuestion([FromRoute] int id, [FromBody] A a) ...

重要提示:

我不应该查看 HttpRequest.Form,因为我正在发送 JSON 数据,它应该被解析到我的模型中。

我看到邮递员 returns 的 json 回复是一个字符串,而不是你的“A” class 有一个 int 属性 代表 A1。

尝试将 class 更改为:

public class A { public string A1 { get; set; } }