【发布时间】:2017-04-29 10:20:28
【问题描述】:
我正在尝试使用包含三种方法的[RoutePrefix("front")] 向控制器添加自定义路由:
[HttpGet]
[ResponseType(typeof(SparePartsFrontDTO))]
public async Task<IHttpActionResult> Get()
{
...
}
[HttpGet]
[ResponseType(typeof(IEnumerable<SparePartSearchDTO>))]
public async Task<IHttpActionResult> Get(string filter)
{
...
}
[HttpGet]
[Route("categories")]
[ResponseType(typeof(IEnumerable<DeviceCategoryDTO>))]
public async Task<IHttpActionResult> GetCategories()
{
...
}
但是当我通过路由api/front/categories调用方法时,而不是自定义路由,调用了默认的get方法。
这是 WebApi 配置:
config.MapHttpAttributeRoutes();
config.MessageHandlers.Add(new PreflightRequestsHandler());
config.SuppressDefaultHostAuthentication();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
【问题讨论】:
标签: c# asp.net-web-api asp.net-web-api-routing