Необязательные параметры веб-API
У меня есть контроллер со следующей подписью:
[Route("products/filter/{apc=apc}/{xpc=xpc}/{sku=sku}")]
public IHttpActionResult Get(string apc, string xpc, int? sku)
{ ... }
Я вызываю этот метод со следующими URI:
~ / API / продукты / фильтр? АРС = AA & XPC = BB~ / API / продукты / фильтр? Ы = 7199123Первый URI работает без проблем. Второй имеет странный побочный эффект. Хотя значения по умолчанию для apc и xpc должны быть нулевыми, если они не предоставлены, параметры фактически являются их именами. Я могу преодолеть это, добавив дополнительную логику:
apc = (apc == "apc") ? null : apc;
xpc = (xpc == "xpc") ? null : xpc;
Это похоже на хак и будет проблематично, если переданное значение будет когда-либо равно имени параметра.
Есть ли способ определить маршрут без этого побочного эффекта?