/ / Как да промените маршрута по подразбиране в asp.net web api - asp.net, asp.net-mvc, asp.net-web-api

Как да промените маршрута по подразбиране в asp.net web api - asp.net, asp.net-mvc, asp.net-web-api

Работя върху asp.net web api. Опитвам се да определя маршрута по подразбиране за моя проект във файла global.asax като,

localhost:45678/api/Products

Но аз не намерих формат, подобен на asp.net mvc маршрут модел като

url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }

Винаги ме пренасочва към Начална страница (HomeController). моля те ме насочи.

Отговори:

9 за отговор № 1

Проверете своето RouteConfig класа във вашия App_Start папка. Трябва да видите маршрута по подразбиране, под който можете да промените.

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

РЕДАКТИРАНЕ

След като прочетох вашите коментари, мисля, че проблемът не е в маршрутите ви. Не съм сигурен защо бихте го направили искам за да го направите, но просто трябва да посочите началния URL адрес на вашия проект. Щракнете с десния бутон върху вашия уеб проект - щракнете Имоти - щракнете върху мрежа раздел - под Старт Действие изберете Начален URL адрес и влизай http://localhost:45678/api/Products в кутията. Запазете проекта си и стартирайте отново. Той трябва да започне на новото място.


4 за отговор № 2

Проблемът може да е често срещаната грешка, в която влизат почти много хора.

Фактът тук е, че всички маршрути се събират под System.Web.Routing.RouteTable.Routes колекция независимо от рамката, която използвате. Така че, ако поставите маршрута по подразбиране ASP.NET MVC преди маршрута на ASP.NET Web API, маршрутът на ASP.NET Web API никога няма да бъде сканиран, тъй като MVC маршрутът ще бъде съвпадение.

Предполагам, че това е случаят тук, като погледнете какво сте предоставили досега. Ако това не е така, качете пълното решение там някъде и хората могат да имат пълен поглед.


1 за отговор № 3

Всъщност, ако сме в състояние да настроиммаршрут по подразбиране в Properties-> web-> start location. тогава каква е нуждата от маршрутни таблици, персонализирани маршрути, RegisterRoutes във файла global.asax. Опитах се по този начин

в началото изглежда така,

routes.MapHttpRoute(
name: "Default Api",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);

Сега искам да направя localhost:xxxx/api/products като маршрут по подразбиране за моя уеб api тогава,

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

Но резултатите от никаква полза.


0 за отговор № 4

[EDIT: Моят отговор е същият като Кевин "

Искате да кажете, че когато стартирате проекта от Visual Studio, той отваря браузър към началната страница на проекта?

Шаблонът за проект на Web API съдържа MVC контролер плюс контролер за Web API.

URI "http: // localhost: xxxx /" отива на MVC контролера, докато "http: // localhost: xxx / api / products" отива в контролера на API.

Когато стартирате проекта във Visual Studio, той ще премине към "http: // localhost: xxxx" по подразбиране. При нормална работа клиентът би поискал URI, който иска.

Можете да промените настройките на Visual Studio под Project Properties / Web / Start Action.


0 за отговор № 5

Мисля, че сте танцували около решението, но просто сте пропуснали знака. Опитайте тази:

  1. Уверете се, че се обаждате GlobalConfiguration.Configure (WebApiConfig.Register); във вашия Global.asax.cs.

  2. в WebApiConfig.Register() Задайте маршрута по подразбиране като:

    route.MapHttpRoute (име: "DefaultApi", routeTemplate: "api /{Контролер}/ {id} ", по подразбиране: нов {controller =" Продукти ", id = RouteParameter.Опционален});

  3. В настройките на вашия уеб проект се уверете, че сте задали свойството „Start Url“ като:

    Localhost: 45678

Късмет.


0 за отговор № 6

Рестартирането на VS с разрешение на администратора разреши този проблем за мен. Информация за околната среда: - ОС: Windows 10 (64-битов) - Визуално студио: 2017г.