В моем приложении angular я получаю сообщение об ошибке при вызове метода 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 не вызывается, поскольку параметр значения пуст.





У меня есть опыт работы только с asp.net web api, но, насколько мне известно, пустое строковое значение приводит к изменению маршрутизации. Поскольку у вас нет маршрута, который принимает только int, ваш запрос никогда не достигает вашего api. Что вам нужно сделать, так это перегрузить ваш метод Get и сделать тот, который принимает только int.
Вы ввели тип переменной shareType в URL-адрес и передаете пустую строку для переменной shareValue. Удалите :number после переменной shareType и присвойте значение переменной shareValue.
В вашем примере вы создаете этот URL:
/api/File/5
Однако ваш контроллер ожидает следующего:
/api/File/5/value
Если вы хотите, чтобы value здесь был необязательным и помещался в параметр value (string value), вы можете настроить свой атрибут HttpGet, например:
[HttpGet("{id:int}/{value?}")]
Это делает value необязательным и заменяет все, что передается.
Не могли бы вы упомянуть сообщение об ошибке, которое вы получаете?