необязательные параметры в ядре web api 2 asp.net не работают

У меня есть функция, как показано ниже

public CaseController{

[HttpGet(GetAll/{parameter1:maxlength(50)?}/{parameter2:maxlength(50)?}/{parameter3:maxlength(50)?})
public IEnumerable<CaseDomainModel> GetAll(string parameter1 = null,string parameter2 = null,string parameter3 = null)
{
   // Code Goes here 
}
}

Сгенерированный вызов API выглядит следующим образом

api/case/GetAll/value1 или api/case/GetAll//value2 или или api/case/GetAll///value3

какое бы значение ни передавалось из внешнего интерфейса в этот конкретный метод API, значение передается параметру1.

Я искал SO и пытался следовать Необязательные параметры в маршрутизации атрибутов Web Api но не могу найти решение.

Мой проект — интерфейс Angular 2 + webapi2 с ядром asp.net в качестве сервисного уровня.

Не могли бы вы сообщить мне, как заставить webpi2 понимать мои необязательные параметры?


person S_developer    schedule 15.11.2016    source источник
comment
Возможный дубликат дополнительных параметров в маршрутизации атрибутов веб-API   -  person Daniel Corzo    schedule 15.11.2016
comment
Вероятно, вам следует просто использовать параметры запроса. Веб-API не может узнать, какой из них вы хотели указать. И такие маршруты, как api/case/GetAll///value3, недействительны. Веб-API видит api/case/GetAll/value3 и присваивает его параметру 1, как и должно быть.   -  person juunas    schedule 16.11.2016