2016-09-13 1 views
0

Почему Web Api по умолчанию 2 HTTP маршрутизации не содержит {action}:Почему маршрут по умолчанию HTTP не содержит {действия}

Из Майкрософт образца:

// Configure Web API for self-host. 
HttpConfiguration config = new HttpConfiguration(); 
config.Routes.MapHttpRoute( 
    name: "DefaultApi", 
    routeTemplate: "api/{controller}/{id}", 
    defaults: new { id = RouteParameter.Optional } 
); 

Почему это не выглядит как это:

// Configure Web API for self-host. 
HttpConfiguration config = new HttpConfiguration(); 
config.Routes.MapHttpRoute( 
    name: "DefaultApi", 
    routeTemplate: "api/{controller}/{action}/{id}", 
    defaults: new { id = RouteParameter.Optional } 
); 

Почему часть действия не требуется для правильной маршрутизации?

Код ПЗУ http://www.asp.net/web-api/overview/hosting-aspnet-web-api/use-owin-to-self-host-web-api

Спасибо большое!

+0

Поскольку в этом режиме методы сопоставляются с Http-глаголами (Get, POST, PUT) и параметрами. Вы можете добавить '{action}', и тогда это будет соответствовать имени метода. – user3185569

ответ

1

Действия в этом примере неявно сопоставляются. Если вы посмотрите, они все разные глаголы HTTP.

+0

Итак, добавление '{action}' не вызовет никаких проблем? Большое спасибо! – BendEg

+1

Если бы я был вами, я бы использовал [Атрибут маршрутизации] (http://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api- 2). Это более ясно. Мне никогда не приходилось менять маршрут по умолчанию. –

+0

Спасибо за этот намек! – BendEg