请参阅官方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 }
);