Как получить параметры отправки через HttpParams - PullRequest
0 голосов
/ 20 сентября 2018

Я работаю над проектом angular6.Используя сервис формы angular, я вызываю 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 });
 }

Как получить параметры, отправленные HttpParams вasp.net ядро ​​веб-API MVC?In попробовал следующее, но это не сработало.

.NetCore Web Api

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

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

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 });
}
0 голосов
/ 20 сентября 2018

Вы пытаетесь отправить запрос, как показано ниже:

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

Однако на самом деле клиент отправляет:

/User/GetUserList?

Причина в том, что ваш paramsTявляется совершенно новым HttpParams. Обратите внимание, что append(string,string) вернет новое тело с добавленным значением для данного имени параметра.Поэтому вам нужно изменить код так:

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

И теперь запрошенный URL и строка запроса будут правильными.

См. документы здесь

...