Angular 7 向ASP.NET 服务器发送两个或更多参数
Angular 7 send two parameters or more to ASP.NET server
我是 Angular 的新手,我使用 Angular 7 作为客户端,使用 ASP.NET 作为服务器端。
我想传递超过2个参数。 1个参数发送成功
这是我的 Angular 发送 2 个参数的服务方法:
validate_user(user : Users, active: boolean): Observable<UsersError> {
console.log(user);
return this.http.post<UsersError>(this.users, user, active);
}
这是我的 ASP.NET post 方法:
public UsersError Post([FromBody] sp_GetUsers_Result user, bool active)
{
UsersError u = new UsersError
{
UserName = "Username Invalid",
Password = "Password Invalid"
};
return u;
}
我知道我可以将参数包装到一个对象中并将其作为一个发送,但我想知道有没有办法使用两个或更多参数(对象)来完成此操作。
我尝试使用 HttpParams
进行各种组合,但没有任何效果。
.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 : submitting/posting 必须匹配控制器中的对象。
Asp.net 将采用主体参数并尝试将它们匹配到控制器参数 (fromBody) 中。您不能将它与另一个参数 (*) 混合使用。
简而言之,您必须将 active
添加到服务器中的新模型。
*
你可以,但它需要一些其他技巧 - 就像我构建的那样:https://github.com/RoyiNamir/SimplePostVariableParameterBindingExtended
BundleTypeAttributeView(users: string, Active: boolean, ): Observable<any> {
const params = new HttpParams().set('users', users).set("Active", Active);
return this.http.get<any>(this.endPoint + 'bundleTypeAttributes', { params });
}
我是 Angular 的新手,我使用 Angular 7 作为客户端,使用 ASP.NET 作为服务器端。
我想传递超过2个参数。 1个参数发送成功
这是我的 Angular 发送 2 个参数的服务方法:
validate_user(user : Users, active: boolean): Observable<UsersError> {
console.log(user);
return this.http.post<UsersError>(this.users, user, active);
}
这是我的 ASP.NET post 方法:
public UsersError Post([FromBody] sp_GetUsers_Result user, bool active)
{
UsersError u = new UsersError
{
UserName = "Username Invalid",
Password = "Password Invalid"
};
return u;
}
我知道我可以将参数包装到一个对象中并将其作为一个发送,但我想知道有没有办法使用两个或更多参数(对象)来完成此操作。
我尝试使用 HttpParams
进行各种组合,但没有任何效果。
.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 : submitting/posting 必须匹配控制器中的对象。
Asp.net 将采用主体参数并尝试将它们匹配到控制器参数 (fromBody) 中。您不能将它与另一个参数 (*) 混合使用。
简而言之,您必须将 active
添加到服务器中的新模型。
*
你可以,但它需要一些其他技巧 - 就像我构建的那样:https://github.com/RoyiNamir/SimplePostVariableParameterBindingExtended
BundleTypeAttributeView(users: string, Active: boolean, ): Observable<any> {
const params = new HttpParams().set('users', users).set("Active", Active);
return this.http.get<any>(this.endPoint + 'bundleTypeAttributes', { params });
}