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

时间:2014-08-26 16:57:01

标签: c# asp.net-web-api

请参阅官方ASP.NET attribute routing documentation,似乎Route属性可以在没有RoutePrefix的情况下使用。

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

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

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

2。工作得很好。

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

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 }
        );

0 个答案:

没有答案