Метод Get API не вызывается при передаче целочисленного значения с пустой строкой в ​​Angular 6 - PullRequest
0 голосов
/ 18 декабря 2018

В моем угловом приложении я получаю ошибку при вызове метода API из angular.Я должен передать два параметра.Сначала одно целочисленное значение, а второе одно строковое значение.это необязательно.

См. фрагмент кода ниже (Typescript)

let id:number = 5;
let value: string = "";

this.http.get<string[]>(this.appService.baseUrl + 'api/File/' + id + "/" + value)

В контроллере:

[HttpGet("{id:int}/value")]
[ResponseCache(NoStore = true)]
public async Task<IActionResult> Get(int id, string value) { }

Здесь метод Get не вызывается, так как значениепараметр пуст.

Ответы [ 3 ]

0 голосов
/ 18 декабря 2018

Вы ввели тип переменной shareType в URL и передаете пустую строку для переменной shareValue.Удалите :number после переменной shareType и присвойте значение переменной shareValue.

0 голосов
/ 18 декабря 2018

В вашем примере вы создаете этот URL:

/api/File/5

Однако ваш контроллер ожидает следующее:

/api/File/5/value

Если вы хотите, чтобы value здесь было необязательными чтобы быть помещенным в параметр value (string value), вы можете настроить свой атрибут HttpGet следующим образом:

[HttpGet("{id:int}/{value?}")]

Это делает value необязательным и является заполнителем для любыхпрошло.

0 голосов
/ 18 декабря 2018

У меня есть опыт работы только с asp.net web api, но насколько я знаю, наличие строкового значения как пустого вызывает изменение маршрутизации.Поскольку у вас нет маршрута, который принимает только int, ваш запрос никогда не достигнет вашего API.Что вам нужно сделать, это перегрузить ваш метод Get и создать тот, который принимает только int.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...