Angular 2 HTTP post 到 Web API 没有 [FromBody]

Angular 2 HTTP post to Web API without [FromBody]

下面有一个示例 Angular 2 代码。

 this.headers = new Headers({ 'Content-Type': 'application/json' });
 this.options = new RequestOptions({ headers: this.headers });
 this.http.post('/api/todo/create', JSON.stringify(todo), this.options);

我还有一个 API 动作,如下所示(ASP.NET 核心)

[HttpPost]
[Route("create")]
public IActionResult Create([FromBody] Todo todo)
{
    return this.Ok();
}

此代码有效,但我在参数中看到 [FromBody] 属性时感到不舒服。我知道对于 Post 请求,MVC 从正文中读取它。但是,我之前一直在 AngularJS 中使用 Restangular,并且参数对象被发送到没有 [FromBody] 属性的 API。

有没有办法只将对象传递给 API 操作,而不使用 [FromBody] 属性或读取请求的内容,然后将其反序列化为对象?

我认为使用 POST 方法的有效载荷是您应该将数据发送到服务器的方法。您可以选择所需的内容类型(JSON、url 编码形式、...)。

也就是说,Angular2 HTTP 支持是 low-level。我的意思是 REST 没有 high-level API。你需要自己设置 headers,选择你想使用的 HTTP 方法...我不会在 Angular2 中找到类似 Restangular 的东西。

这个link可以帮助你: