У меня есть маршрут, который я хочу использовать с несколькими необязательными параметрами, например:
[RoutePrefix("api/crm/topline")]
public class MyController: ApiController
[Route("{branchNumber?}/{salesNumber?}/{accountNumber?}")]
public async Task<IHttpActionResult> Get([FromUri] string branchNumber = null, [FromUri] string salesNumber = null, [FromUri] string accountNumber = null) {
log.Debug($"Get:{branchNumber}/{salesNumber}/{accountNumber}");
return Ok($"Get:{branchNumber}/{salesNumber}/{accountNumber}");
}
Я знаю, что к API можно привязать вот так:
/api/crm/topline/?branchNumber=11&accountNumber=9795
Используя этот формат, я получаю ответ
"Get:11//9795"
Можно ли правильно выполнить привязку к этому с помощью такого HTTP-вызова ?:
/api/crm/topline/11//9795
Мне не удалось заставить этот формат работать, я получаю ответ:
"Get:11/9795/"
Это означает, что этот второй формат считает, что последний параметр пропущен, а не средний.
Нет, дублирующиеся косые черты уменьшаются. Вы можете попробовать ввести -1 или 0, чтобы указать игнорировать это поле в своем коде, а затем обработать это, чтобы использовать только то, что не установлено в настройках по умолчанию.
@ MarcusHöglund в http get или в коде на стороне сервера вместо null?
Попробуйте использовать строку [FromUri] branchNumber = ""





Что произойдет, если вы установите значение по умолчанию на пустую строку?