У меня есть класс, как это:Дополнительный DateTime Web API
public class FooController : ApiController
{
[System.Web.Http.Route("live/topperformers")]
[System.Web.Http.AcceptVerbs("GET", "POST")]
[System.Web.Http.HttpGet]
public List<string> GetTopPerformers()
{
return new List<string>();
}
}
Когда я получить доступ к нему, перейдя в «http://foo.com/live/topperformers», он прекрасно работает. Итак, теперь я хочу добавить необязательный параметр DateTime к этому методу, поэтому я изменяю метод, чтобы принять параметр DAteTime и сделать его допустимым.
public class FooController : ApiController
{
[System.Web.Http.Route("live/topperformers/{dateTime:DateTime}")]
[System.Web.Http.AcceptVerbs("GET", "POST")]
[System.Web.Http.HttpGet]
public List<string> GetTopPerformers(DateTime? dateTime)
{
return new List<string>();
}
}
Когда я пытаюсь получить доступ к URL без параметра, то же самое, как я достигаю раньше -. Это дает 404. Пазинг в значение даты, как «как» http://foo.com/live/topperformers/2010-01-01 "работает нормально, но без даты, это даю 404.
Я думал, Web API поддерживается дополнительный Params таким образом? Я могу просто перегрузить и иметь оба версий, но это возможно только с одним методом?
спасибо, мне не хватало? отметьте, однако он не сработал, поскольку вы отправили - пока я не присвоил значение null по умолчанию в определении функции переменной «dateTime». благодаря! – dferraro
Моя вина. Я пропустил установку параметра по умолчанию как @sjkm и предлагаемую документацию (имел только знак вопроса в маршруте и контролировал значение по умолчанию). Отлично, что он работает сейчас! –