Angular 2 http post null Web Api Core

And*_*edo 1 javascript asp.net http-post asp.net-web-api angular

我正在使用现有的Web Api(ASP.NET Core)在角度2中实现一个新的Web应用程序,但我遇到了HTTP Post的问题.在搜索了所有类型的信息之后,我仍然无法解决这个问题,我的Web API仍然从角度帖子接收空参数.

我需要看看这里有什么问题.这是我的Angular 2代码:

   posted(event) {
 @Injectable()
export class httpTestComponent {

constructor(public http: Http) {

};

posted(event) {
    var user: UserViewModel = {
        name: "angularUser",
        password: "pw",
        email: "angularMail"
    }
    let pedido = JSON.stringify(user);

    let headers = new Headers({ 'Content-Type': 'application/json' });
    let options = new RequestOptions({ headers: headers });

    this.http.post('http://localhost:10832/api/Account/Register', { pedido }, options)
        .map(this.extractData).catch(this.handleError).subscribe();
};
Run Code Online (Sandbox Code Playgroud)

视图模型:

export interface UserViewModel {
name: string,
password: string,
email: string,
Run Code Online (Sandbox Code Playgroud)

}

Web API:

 [HttpPost]
    [Route("Register")]
    public void Register([FromBody] UserRegisterViewModel userVm)
    {
   }
Run Code Online (Sandbox Code Playgroud)

ViewModel WEB API:

    public class UserRegisterViewModel
{
    public string name { get; set; }

    public string password { get; set; }

    public string email { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

谁能告诉我在哪里错了?

Adn*_* A. 7

没有理由补充JSON.stringify().尝试删除它.

编辑:

删除JSON.stringify()或删除身体数据周围的大括号:

this.http.post('http://localhost:10832/api/Account/Register', pedido, options)
Run Code Online (Sandbox Code Playgroud)

Angular将尝试序列化已经序列化的JSON字符串作为对象,如果你这样做,这就是你遇到问题的原因.

源代码:链接