如何从Angular 2和Typescript执行API调用

时间:2017-05-21 18:14:26

标签: javascript c# angular typescript asp.net-web-api2

我有一个基本的API调用,它接受两个id并将它们添加到用户的收藏夹矩阵中。我已经在C#MVC中设置了这样的调用:

[Route("api/discovery/addToFavourite/{profileid}/{userid}")]
public void AddToFav(int profileid, int userid)
{
    var Favourite = new Favourite();
    Favourite.ProfileId = profileid;
    Favourite.UserId = userid;

    WildWalkDb.Favourites.Add(Favourite);
    WildWalkDb.SaveChanges();
}

然后从Angular 2和TypeScript我得到:

addToFav(profileid) {
    var headers = new Headers();
    headers.append('Content-Type', 'application/json');
    let options = new RequestOptions({ headers: headers });
    return this.http.post(this.url + '/api/discovery/favourite/' + profileid + '/' + 1)
    .toPromise()
    .then(response => <string>response.statusText)
    .catch(this.handleError);
  }

我只需要使用参数运行该url而不传递任何Json或任何东西,但这会失败,大概是因为它在http.post调用上缺少其他参数。所以从这一切来看,我猜这不是最好的方法,也许我主要错过了帖子调用的工作方式?对我来说,拨打api电话的最佳方式是什么?

1 个答案:

答案 0 :(得分:1)

如果不需要参数,请将它们设为可选,然后在运行时填充/提供它们,否则在呼叫点提供它们。

<强> - (编辑) 在呼叫点提供空值。