HttpPost到web api总是一个空的parater

时间:2016-08-03 20:45:11

标签: asp.net-web-api angular asp.net-core

我正试图从角度2的应用程序发布一些数据到web api应用程序。它只是一个小的json字符串,当我点击web api控制器时,该项始终为null - 无论我尝试过什么。

json是(我可以通过警告数据看到这一点)

{"firstname":"Joe","lastname":"Bloggs"}

角度函数是

    createUser(user: Profile): Observable<Response> {

    let url = this.usersUrl;
    let data = JSON.stringify(user);
    let headers = new Headers({'Content-Type': 'application/json; charset=utf-8' });
    let options = new RequestOptions({ headers: headers });

    return this.http.post(url, data, options);
}

web api conroller方法是:

    [HttpPost]
    public IActionResult Create(User item)
    {
        if (item == null)
        {
            return BadRequest();
        }
        Users.Add(item);
        return CreatedAtRoute("GetUser", new { id = item.Id }, item);
    }

但是当我在创建用户项时断点时为空。

我试过了:

   public IActionResult Create([FromBody] User item)

但Chrome控制台窗口中的错误消息为

Failed to load resource: the server responded with a status of 415 (Unsupported Media Type) 

我试过

    let headers = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' });

但错误与上述相同。

任何想法?:)

1 个答案:

答案 0 :(得分:0)

我认为您的问题是api中的用户模型。

属性需要完全相等。

您可以通过Google Chrome开发者工具分享网络结果,我们可以更轻松地为您提供帮助。