【问题标题】:ASP.NET Core Web API cannot receive posted values: always nullASP.NET Core Web API 无法接收发布的值:始终为空
【发布时间】:2019-09-20 17:47:48
【问题描述】:

我的 react 前端发布了 json 数据,而 asp.net 核心后端总是得到 value=null。它如何获取值?

我试过[FromForm][FromBody],&[FromQuery],但值始终为空。

[后端核心2.2]

        [HttpPost]
        [Route("companies")]
        //public void Post([FromQuery] Data data)
        //public void Post(string data)
        //public void Post([FromBody] Data data)
        public void Post([FromForm] Data data)
        {
            // Cannot get data.values here.
        }
        public class Data
        {
            public string Value1 { get; set; } 
            public string Value2 { get; set; } 
        }

[前端]

    var Data = {
      Value1: "1",
      Value2: "2"
    };
    fetch('http://localhost:61980/api/values/companies', {
      method: 'POST',
      contentType : 'application/json',
      dataType: "json",
      // data: jsonData,
      data: JSON.stringify(Data),
      // body: JSON.stringify(Data),
      // body: "aaa",
      mode: 'no-cors'
    })

后端总是得到datadata.Value1 = nulldata.Value2 = null

【问题讨论】:

  • 你有两次data: data: jsonData, data: JSON.stringify(Data) 删除两个之一。
  • 谢谢,我只是忘了注释掉它,它仍然不起作用。我尝试了很多方法并将它们注释掉。
  • 你可以尝试制作public class Data { public string value1 { get; set; } public string value2 { get; set; } }小写字母v.并使用FromBody
  • 您需要使用 [FromBody] 并且还需要在 fetch ..... headers 中设置正文:{ 'Accept': 'application/json, text/plain, /', 'Content-Type': 'application/json' }, 正文: JSON.stringify(Data)
  • 我使用的 jQuery 版本:function PostModel(requestModel, url, successFunction, successParam) { $.ajax({ type: "POST", url: url, data: JSON.stringify(requestModel), dataType : "json", contentType: "application/json; charset=utf-8", headers: ComposeAntiForgeryTokenHeader(), success: function (resultModel) { } }); }

标签: c# asp.net-core-webapi


【解决方案1】:

1) 你确定你能达到这个终点吗?因为我可以看到您的终点是公司,所以我认为应该是 api/companies 但您正在尝试访问 api/values/companies。

2) 如果第一点是正确的,那么尝试使用邮递员工具到达这个终点。

【讨论】:

  • 1) 我的控制器名称是值,所以它是正确的。 2)是的,我正在使用邮递员。感谢您的澄清:)
猜你喜欢
  • 2017-06-26
  • 1970-01-01
  • 1970-01-01
  • 2018-12-26
  • 2017-06-07
  • 1970-01-01
  • 2018-10-26
  • 1970-01-01
  • 2021-07-04
相关资源
最近更新 更多