【发布时间】:2017-01-20 18:39:25
【问题描述】:
为什么默认的Web Api 2 http路由不包含{action}:
来自微软示例:
// 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 }
);
为什么正确路由不需要操作部分?
代码是romhttp://www.asp.net/web-api/overview/hosting-aspnet-web-api/use-owin-to-self-host-web-api
非常感谢!
【问题讨论】:
-
因为在该模式下,方法由 Http 动词(Get、POST、PUT)和参数匹配。您可以添加
{action},然后通过方法名称匹配。
标签: c# .net asp.net-web-api routing asp.net-web-api2