私はAngularを初めて使用し、クライアント側としてAngular 7を使用し、サーバー側としてASP.NETを使用しています。
2つ以上のパラメーターを渡したい。1つのパラメータを送信することに成功しました。
これが2つのパラメーターを送信する私のAngularサービスメソッドです:
validate_user(user : Users, active: boolean): Observable<UsersError> {
console.log(user);
return this.http.post<UsersError>(this.users, user, active);
}
これが私のASP.NETpostメソッドです:
public UsersError Post([FromBody] sp_GetUsers_Result user, bool active)
{
UsersError u = new UsersError
{
UserName = "Username Invalid",
Password = "Password Invalid"
};
return u;
}
パラメータをオブジェクトにラップして1つとして送信できることは知っていますが、2つ以上のパラメータ(オブジェクト)を使用してそれを行う方法があることを知りたいです。
HttpParams
いろいろ組み合わせて使ってみましたが、うまくいきませんでした。
の3番目のパラメータ.post
はhttpOptions
次のとおりです。
例:
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
'Authorization': 'my-auth-token'
})
};
したがって、この行を変更する必要があります:
return this.http.post<UsersError>(this.users, user, active);
active
パラメータとして送信する必要があります
asp.netについて:送信/投稿はコントローラー内のオブジェクトと一致する必要があります。
Asp.netはbodyパラメーターを取得し、それらをコントローラー引数(fromBody)に一致させようとします。別の引数(*)と混在させることはできません。
つまり、active
サーバーの新しいモデルに追加する必要があります。
*
できますが、他にもいくつかのハックが必要になります-私が構築したように:https://github.com/RoyiNamir/SimplePostVariableParameterBindingExtended
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加