javascript - .NET Core 2 端点不会在 POST 上绑定(bind) FromBody 的参数

标签 javascript angular post asp.net-core

我正在我的 Angular 应用程序中执行以下调用。

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

我还尝试了显式 header 配置。

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

断点在下面的方法中被捕获。

[HttpPost("Beep")]
public IActionResult RequestNetwork(
  [FromBody]string name, 
  [FromBody]string email)
{
  ...
  return Ok();
}

问题是两个字段都为空。

我不完全确定我在前端或后端的调用中是否做了一些愚蠢的事情。我验证了代码与像this one这样的博客。我的赌注是前者,因为我遵循了 Angular docs而且,我还运行了 Postman(将 Content-Type 设置为 application/json 并发送 {name:"qqq",email:"www"} 作为原始)。我尝试过的每种参数组合的结果都是相同的。

在这个假设下,我一直在谷歌上搜索任何类似于“绑定(bind)核心帖子来自body”的内容,包括我能想到的变体。我没有找到任何我认为相关或有用的东西(可能是由于缺乏经验或沮丧)。

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

最佳答案

尝试使用类

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();
}

关于javascript - .NET Core 2 端点不会在 POST 上绑定(bind) FromBody 的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50081221/

相关文章:

javascript - 动态变化的列表构造

javascript - typescript 问题 - 澄清几点

html - 在 Angular 为 2 的条件上添加属性

javascript - 使用装饰器中的原型(prototype)/访问基类属性访问派生类中的基类属性

python - Python 中分离表单和处理

javascript - 使用 Angular 将图像作为表单的一部分上传

javascript - Math.将科学记数法下限到某个小数点

angular - 为什么 markForCheck() 只适用于一个分支?

javascript - 为什么我无法从 ajax post 请求中获取操作

javascript - 如何使用 JavaScript 将 XML 发布到 iframe