[英]Web api routing - default actions with custom actions mapped twice
我在WebApiConfig中映射了以下路由:
config.Routes.MapHttpRoute(name: "WithActionApi", routeTemplate: "api/{controller}/{action}/{id}");
config.Routes.MapHttpRoute(name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { action = "DefaultAction", id = RouteParameter.Optional });
在我的控制器中我有:
[HttpGet]
public ProspectAddressResult Addresses(int id)
{
...
return result;
}
[ActionName("DefaultAction")]
public ProspectDetail Get(int id)
{
...
return prospect;
}
我发现我将Get路由映射两次作为api / prospect / 1和api / prospect / Get / 1。 我做错了什么,因为我希望路线只能映射一次,即api / prospect / 1或者是不可能(或相关)?
为什么不通过nuget安装web api 2。 然后,您可以使用操作/控制器上的Route和RoutePrefix属性来指定路由。
那么你应该永远不会得到重复的映射
以下是如何设置api控制器的示例:
[RoutePrefix("api/prospect")]
public class ProspectController: ApiController
{
[Route("{id}")]
public ProspectDetail Get(int id)
{
...
return prospect;
}
}
您的路线将是api / prospect / 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.