Deepak.xip Ответов: 1

Проблема маршрутизации Webapi


Привет,

Я новичок в webAPI. У меня есть существующий проект webAPI, который мне нужно запустить/отладить.В этом проекте для каждого метода действия использовалась маршрутизация на основе атрибутов.В файле RouteConfig. cs они имеют {controller} / {action} в качестве параметра URL в методе MapRoute(обратите внимание, что они удалили оттуда часть "api/").Но все равно я не могу так называть веб-сервисы ..."http://localhost/{контроллер} / {действие}".Однако я могу вызвать их после префикса "api/" перед именем контроллера, т. е. "http://localhost/api/{контроллер} / {действие}".

Может ли кто-нибудь помочь мне выяснить, где еще может быть определена эта конфигурация маршрутизации?

Спасибо

Что я уже пробовал:

Изменение конфигурации маршрутизации

Afzaal Ahmad Zeeshan

Потому что ваша маршрутизация по-прежнему настроена на прием производных контроллеров ApiController в местоположении "/api/", а не где-либо еще. Проверьте маршрутизацию Web API, а не маршрутизацию MVC по умолчанию.

1 Ответов

Рейтинг:
0

David_Wimbley

Конфигурация веб-API находится не в вашем файле RouteConfig.cs, а в файле WebApiConfig.cs. Здесь вы найдете префикс api/.

public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services

            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }


Вам понадобится префикс (api/) какого-то рода, так как возникнет путаница, является ли он атрибутивным маршрутом или обычным маршрутом типа MVC.

Но я думаю, что основной источник вашей проблемы заключается в том, что вы должны искать в файле WebApiConfig.cs.