.NET Core 2端点在POST时不绑定FromBody的参数

时间:2018-04-28 21:26:35

标签: javascript angular post asp.net-core

我在Angular应用程序中进行了以下调用。

for i in range(1,5):
    wincol = "W" + str(i)
    losecol = "L" + str(i)
    setcol = "SET" + str(i)
    matches_df[setcol] = matches_df[wincol] > matches_df[losecol]
    matches_df[setcol] = matches_df[setcol].astype(float)

我也尝试使用显式标头配置。

this._client.post(
  "http://localhost:4300/api/Beep",
  { name: name, email: email })
  .subscribe(...);

断点按以下方法捕获。

this._client.post(
  "http://localhost:4300/api/Beep",
  { name: name, email: email }),
  { headers: new HttpHeaders({ "Content-Type": "application/json" }) }
  .subscribe(...);

问题是这两个字段都是空的。

我不完全确定我是否在前端或后端的电话中做了一些愚蠢的事情。我验证了代码与this one等博客的对比。我打赌是前者,因为我跟着Angular docs,而且我也跑了Postman(将 Content-Type 设置为 application / json 并发送 {name:" qqq",email:" www"} 作为原始)。对于我尝试过的每个参数组合都有相同的结果。

根据这个假设,我一直在搜索任何类似于" 绑定核心帖子的任何内容"包括我能想到的变化。我还没有找到任何我认为相关或有用的东西(可能是由于缺乏经验或挫折)。

这里可能存在什么问题,我应该寻求什么来解决它(或者至少深入了解我所遇到的任何错误)?

1 个答案:

答案 0 :(得分:1)

尝试使用类

public class DataType
{
   public string name { get; set; }
   public string email { get; set; }
}

//in your api
[HttpPost, ActionName("Beep")]
public IActionResult RequestNetwork([FromBody]DataType value)
{
  string name=value.name;
  string email=value.email;
  ...
  return Ok();
}