如果没有ASP.NET WebApi中的[RoutePrefix],属性[Route]不起作用

You*_*jae 5 c# asp.net-web-api

参考官方的ASP.NET属性路由文档,似乎Route没有使用属性RoutePrefix.

但是,在我的webapi控制器中,发生了以下情况.

1.不工作 (错误:找不到匹配的http路由)

public class GroupController : ApiController
{
    [Route("api/group/{id}/register")]
    public IHttpActionResult Post(int id, InputModel model)
    {
        return Ok();
    }
}
Run Code Online (Sandbox Code Playgroud)

2.运作良好.

[RoutePrefix("api/group")]
public class GroupController : ApiController
{
    [Route("{id}/register")]
    public IHttpActionResult Post(int id, InputModel model)
    {
        return Ok();
    }
}
Run Code Online (Sandbox Code Playgroud)

是否Route应该使用属性RoutePrefix,或者我错过了什么?

另外,下面的代码是WebApiConfig.Register类中的WebApi路由配置.

    // Web API routes
    config.MapHttpAttributeRoutes();

    config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}/{subId}",
            defaults: new { id = RouteParameter.Optional, subId = RouteParameter.Optional }
        );
Run Code Online (Sandbox Code Playgroud)