Необязательные параметры веб-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;

Это похоже на хак и будет проблематично, если переданное значение будет когда-либо равно имени параметра.

Есть ли способ определить маршрут без этого побочного эффекта?

Ответы на вопрос(2)

Ваш ответ на вопрос