Недавно я начал перенос существующей веб-службы с WCF на ASP.NET WebApi 2. Одна из устаревших конечных точек немного странная, и у меня возникают проблемы с выяснением того, как ее реплицировать в контроллере WebApi. Проблема в том, что конечная точка имеет параметр запроса с тем же именем как часть пути.
В WCF у нас было ...
[WebGet(UriTemplate = "configuration/id?id = {id}")]
Config GetConfigByID(string id);
Я попытался воспроизвести это в контроллере, но клиенты получили ошибку 404.
[Route("configuration/id")
public IHttpActionResult GetConfigByID(string id)
{
Config config = GetConfig(id);
return Ok(config);
}
Как бы мне ни хотелось изменить конечную точку, она мне нужна для работы с существующими клиентами.





[Route("configuration/id")
public IHttpActionResult GetConfigByID([FromUri] string id)
{
Config config = GetConfig(id);
return Ok(config);
}
Вы можете попробовать атрибут FromUri
Неважно. Мой точный вопрос работает отлично. Что-то еще внутри контроллера было тупым. Продолжать...