【问题标题】:How to receive parameters send via HttpParams如何接收通过 HttpParams 发送的参数
【发布时间】:2019-02-24 12:53:23
【问题描述】:

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

Angular 6

GetUserList() {

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

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

如何在asp.net core MVC web API中接收HttpParams发送的参数?尝试了以下方法,但没有成功。

.NetCore Web API

 public JsonResult GetUserList([FromQuery] string userID, [FromQuery] string name)
    {
        ClsUser u = new ClsUser();
        return Json(u.GetUserListDB().ToArray());
    }

【问题讨论】:

  • 您在网络标签中得到了什么?

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


【解决方案1】:

您正在尝试发送如下请求:

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

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

/User/GetUserList?

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

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

现在请求的 URL 和查询字符串将是正确的。

docs here

【讨论】:

  • @himadri 试着养成支持和接受答案的习惯。它为回答者提供了更多的互联网点。 :)
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-21
    • 2012-03-02
    • 2015-07-07
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    相关资源
    最近更新 更多