У меня есть базовый метод HttpGet, в котором люди могут добавлять неограниченное количество строковых параметров. Таким образом, в основном это означает, что вы можете перейти к api/controller/foo
, api/controller/foo/bar
, api/controller/foo/bar/biz
и т. д.
Я пытался сделать это, как показано ниже, но это, похоже, не работает
[HttpGet("{container}/{prefixes}")]
public async Task<ActionResult<string>> Get(string container, params string[] prefixes)
Вы можете использовать универсальный параметр шаблона и самостоятельно разделить путь, чтобы решить свою проблему:
[HttpGet("{container}/{*prefixPath}")]
public async Task<ActionResult<string>> Get(string container, string prefixPath)
{
string[] prefixes = prefixPath?.Split('/');
...
}
Я тоже так думал, когда читал документацию. Увы **
не работает и приводит к исключению. Так что это либо ошибка в фреймворке, либо в документации.
Я думал, что
*
по-прежнему будет кодировать косую черту, а**
— нет?