首页 > 解决方案 > 将表单数据从客户端发送到服务器时的正确数据格式

问题描述

我对如何将表单数据从 React 前端表单发送到 .NetCore Entity Framework 控制器感到困惑。

看来我要么得到 400 要么 415 错误。

这是我在前端发送数据的方式:

axios({
        method: "POST",
        url: "https://localhost:44376/api/formdata",
        data: JSON.stringify(values),
        headers: { 'Content-Type': 'application/json; charset=utf-8' }
});

这是我收到它的方式:

[HttpPost]
public async Task<ActionResult> AcceptContractor([FromBody] CreateContractor data)
{ .. }

这是数据在 Chrome 中写入控制台的样子:

{
  "jobIds": [
    0,
    "2",
    "3"
  ],
  "email": "alljobs@xyz.com",
  "name": "Jim Smith",
  "phone": "100-200-3000",
  "jobType": "Residential",
  "title": "July Jobs",
  "startDate": "2020-07-23T15:50:29.345Z",
  "finishDate": "2020-09-03T04:00:00.000Z"
}

我想知道也许我不应该使用“FromBody”?

谢谢!

标签: c#reactjsasp.net-coreentity-framework-coreasp.net-core-webapi

解决方案


在邮递员中测试这个卷曲:

curl --location --request POST 'https://localhost:44376/api/formdata' \
--header 'accept: */*' \
--header 'Content-Type: application/json-patch+json' \
--data-raw '{
    "jobIds": [
        "0",
        "2",
        "3"
    ],
    "email": "alljobs@xyz.com",
    "name": "Jim Smith",
    "phone": "100-200-3000",
    "jobType": "Residential",
    "title": "July Jobs",
    "startDate": "2020-07-23T15:50:29.345Z",
    "finishDate": "2020-09-03T04:00:00.000Z"
}'

推荐阅读