如何接收通过HttpParams发送的参数

时间:2018-09-20 08:58:04

标签: angular asp.net-core asp.net-core-mvc asp.net-core-webapi

我正在研究angular6项目。使用表单角度服务,我通过以下方式调用API并发送参数:

角度6

uint16_t ** A = malloc(N * sizeof *A);
for (size_t i = 0; i < N; ++i)
{
  A[i] = ((uint16_t*) p) + i*M;
}

uint16_t ** B = malloc(N * sizeof *B);
for (size_t i = N; i < 2*N; ++i)
{
  B[i - N] = ((uint16_t*) p) + i*M;
}

我如何在asp.net核心MVC Web API中接收HttpParams发送的参数?在尝试了以下方法,但是没有用。

.NetCore Web Api

GetUserList() {

var paramsT = new HttpParams();
paramsT.append('userID', '100');
paramsT.append('name', 'himadri');

return this.http.get(this.baseURLApi + "/User/GetUserList", { params: paramsT });
 }

2 个答案:

答案 0 :(得分:0)

您正尝试发送如下请求:

/User/GetUserList?userID=100&name=himadri

但是,客户端实际发送的是:

/User/GetUserList?

原因是您的paramsT是全新的HttpParams。请注意,append(string,string)将为给定参数名称返回带有附加值的新主体。因此,您需要将代码更改为:

var paramsT = new HttpParams()
    .append('userID', '100')
    .append('name', 'himadri');

现在请求的URL和querystring将是正确的。

请参见docs here

答案 1 :(得分:0)

HttpParams是不可变的,并且append方法返回新的HttpParams
您的代码应为:

GetUserList() {
    let paramsT = new HttpParams();
    paramsT = paramsT.append('userID', '100');
    paramsT = paramsT.append('name', 'himadri');

    return this.http.get(this.baseURLApi + "/User/GetUserList", { params: paramsT });
}

GetUserList() {

    const paramsT = new HttpParams()
        .append('userID', '100')
        .append('name', 'himadri');

    return this.http.get(this.baseURLApi + "/User/GetUserList", { params: paramsT });
}