Использование WebApi 2.2. В моем WebApiConfig.cs у меня есть:Не найдено маршрута с именем контроллера, которое соответствует запросу URI
public static void Register(HttpConfiguration configuration)
{
configuration.Routes.MapHttpRoute("API Default", "api/{controller}/{id}",
new { id = RouteParameter.Optional });
configuration.Routes.MapHttpRoute(
name: "EnvironmentCreateAnnualTargetApi",
routeTemplate: "api/EnvironmentTargets/{WorkLocationGuid}/{UserGuid}/{Year}"
);
configuration.Routes.MapHttpRoute(
name: "EnvironmentUnitConversionApi",
routeTemplate: "api/Conversions/{ConvertFromMeasureId}/{ConvertFromAmount}/{ConvertToMeasureId}/{MeasureDefinition}",
defaults: new
{
ConvertFromMeasureId = RouteParameter.Optional,
ConvertFromAmount = RouteParameter.Optional,
ConvertToMeasureId = RouteParameter.Optional,
MeasureDefinition = RouteParameter.Optional
}
);
}
маршрут под названием «EnvironmentCreateAnnualTargetApi» работает, но я не могу получить вторые один работать, попробовав много различных вещей и чистящие этот сайт.
My Controller, как это:
[RoutePrefix("api/Conversions")]
public class ConversionsController : ApiController
{
Тогда методу:
// GET: api/Conversions/7/5000/10/1
[HttpGet, ActionName("Get")]
[AllowAnonymous]
public double Get(int ConvertFromMeasureId, double ConvertFromAmount, int ConvertToMeasureId, int MeasureDefinition)
Я пробовал и без по умолчанию, установленные в методе MapHttpRoute.
Ошибка я получаю это:
<Error>
<Message>No HTTP resource was found that matches the
request URI 'http://localhost:50000/api/Conversions/7/10000/10/1'.</Message>
<MessageDetail>No route providing a controller name was
found to match request URI
'http://localhost:50000/api/Conversions/7/10000/10/1'</MessageDetail>
</Error>
Я не понимаю, что я мог бы получать здесь не так. Попробовали вещи frommanydifferentanswers но не мудрее.
Предполагая, что Utilities.MeasureDefinitions является перечислением, вы пытались изменить тип параметра на int, а затем вручную преобразовать в enum в теле? –
Также вы можете попытаться сделать имена параметров метода эквивалентными именам параметров маршрутизатора? –
Реализованы оба предложения и соответственно обновили мой вопрос. Тем не менее, при этом возвращается одна и та же ошибка. Я до сих пор довольно новичок в этом - есть ли где-нибудь, где я могу подключить отладчик, чтобы я мог попытаться следить за тем, что происходит, и, возможно, посмотреть, где он падает, знаете ли вы? –