Продолжаю эпопею с роутингом
Методы контроллера:
public Object Get(int id)
{
PrivateConsultant cons = consMng.GetById(id);
PrivateConsultantVM result = new PrivateConsultantVM
{
Name = cons.Name,
Surname = cons.Surname,
Patronymic = cons.Patronymic,
Rating = cons.Rating,
ServicesTitles = serviceMng.GetTitles(cons.Id)
};
return Ok(new { result, date = DateTime.Now });
}
[HttpGet]
public Object GgetByEntityId(int id)
{
return Ok(new { result = "GetByEntityId" });
}
(2 g ввёл специально)
Настройка роутинга:
config.Routes.MapHttpRoute(
name: "ActionRoute",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { },
constraints: new
{
action = new AlphaRouteConstraint(),
}
);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { },
constraints: new
{
id = new IntRouteConstraint()
}
);
Срабатывает только этот метод метод:
http://localhost:54788/api/consultants/GgetByEntityId/1
Если так
http://localhost:54788/api/consultants/1
то ошибка
<Error>
<Message>Произошла ошибка.</Message>
<ExceptionMessage>
Найдено несколько действий, соответствующих запросу: Get на типе WebApplication1.Controllers.ConsultantsController GgetByEntityId на типе WebApplication1.Controllers.ConsultantsController
</ExceptionMessage>
<ExceptionType>System.InvalidOperationException</ExceptionType>
<StackTrace>
в System.Web.Http.Controllers.ApiControllerActionSelector.ActionSelectorCacheItem.SelectAction(HttpControllerContext controllerContext) в System.Web.Http.Controllers.ApiControllerActionSelector.SelectAction(HttpControllerContext controllerContext) в System.Web.Http.ApiController.ExecuteAsync(HttpControllerContext controllerContext, CancellationToken cancellationToken) в System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__1.MoveNext()
</StackTrace>
</Error>
Не понимаю почему, должно работать Когда идёт 2-й запрос, роутинг сопоставляет его с роутом ActionRoute. Единица в запросе сопоставляется с {action}, но т.к. у action ограничение на строку, то дальше запрос сопоставляется с роутом DefaultApi
Где ошибка?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
В WPF приложении есть небольшая информационная форма, которая вызывается с основнойПо задумке на этой информационной форме должен быть стандартный...
У меня имеется rest self host клиент на одной машине и сервер на другойАвторизация используется по сертификату (httpClientHandler
Каким образом можно отловить нажатие на стрелки при вводе текста в TextBox? Событие KeyDown не реагирует на их нажатие
Сайт не открывает всплывающие окна, в консоли такая ошибка, как мне подключить tooltip к popover?