Подтвердить что ты не робот

Маршрутизация атрибутов с дополнительными параметрами в ASP.NET Web API

Я пытаюсь использовать маршрутизацию атрибутов Web API 2 для настройки пользовательского API. У меня мой маршрут работает так, что моя функция вызывается, но по какой-то причине мне нужно передать мой первый параметр, чтобы все работало правильно. Ниже перечислены URL-адреса, которые я хочу поддерживать:

http://mysite/api/servicename/parameter1
http://mysite/api/servicename/parameter1?parameter2=value2
http://mysite/api/servicename/parameter1?parameter2=value2&parameter3=value3
http://mysite/api/servicename/parameter1?parameter2=value2&parameter3=value3&p4=v4

Последние 3 URL-адреса работают, но первый говорит: "Никакого действия не найдено на контроллере" имя контроллера ", которое соответствует запросу.

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

public class MyServiceController : ApiController
{
    [Route("api/servicename/{parameter1}")]
    [HttpGet]
    public async Task<ReturnType> Get(string parameter1, DateTime? parameter2, string parameter3 = "", string p4 = "")
    {
        // process
    }
}
4b9b3361

Ответ 1

Веб-API требует явно устанавливать необязательные значения даже для типов с нулевым значением... поэтому вы можете попробовать установить следующее, и вы должны увидеть, что ваш 1-й запрос успешно

DateTime? parameter2 = null