2017-05-21 7 views
-1

2つのidを取り込んで、ユーザーのお気に入りマトリクスにプロファイルに追加する基本的なAPI呼び出しがあります。私はちょうどいずれかを通過することなくパラメータを指定して、そのURLを実行する必要がAngular 2とTypescriptからAPI呼び出しを実行する方法

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

:私は角度2と活字体から

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

そして:私はそうのようなC#MVCでのコールセットアップを設定しましたJsonやそれ以上のものですが、これはおそらくhttp.postの呼び出しで追加のパラメータがないために失敗します。だから私はこれを推測しているすべてから、これを行うための最善の方法ではないと私は主にポストコールの仕組みのポイントを欠場している?私がそのAPI呼び出しをするための最良の方法は何ですか?

+0

ルートと投稿のURLが一致しません。 API関数はHttpPost属性を使用していませんが、それは問題ではありません。コンソールのエラー?デバッグエラー? –

+0

ブラウザでネットワークタブを開くと、クライアント側から要求が正しく開始されることがわかりますか?あなたはエラーをキャッチしていますか?あなたの現在の問題点を少し詳しく説明できますか?あなたのリクエストは別のルートに向けられているようです。 – quirimmo

+0

私はエラーが何であるかを知っています - 私は上に掲載しました( 'http.post呼び出しで追加のパラメータが見つからないため') - 私が知る必要があるのは正しい方法ですこれは私が追加のパラメータとして渡すオブジェクトを持っていないので –

答えて

1

パラメータが必須でない場合は、それらをオプションにしてから実行時に入力/入力します。それ以外の場合はコールポイントで入力します。

- (編集) コールポイントで空の値を指定します。

+0

うん、私はそれを知っている - しかし、私はURLを実行する必要があるとしてそれらを埋める必要はありませんが、彼らはオプションではないので、私はする必要があります私はそれらのパラメータを渡す必要はありませんそのポストコールを行うための最善の方法を知っている。 –

+1

オプションでない場合は、空の値を入力するだけです。 – PRAISER

+0

実際に私がそれを行うことができるかどうかはわかりませんでした。 –

関連する問題