Asp.net web api Web API 5.0.0-rc1中断默认路由

Asp.net web api Web API 5.0.0-rc1中断默认路由,asp.net-web-api,attributerouting,Asp.net Web Api,Attributerouting,在我从Web API5.0.0-beta2更新到5.0.0-rc1之前,我可以做如下操作: [RoutePrefix("api/v1/test")] public class TestController : ApiController { [HttpGet] public TestString Get() { return new TestString { str = "HELLO WORLD" }; } } 因此,当我转到URL/api/v1

在我从Web API
5.0.0-beta2
更新到
5.0.0-rc1
之前,我可以做如下操作:

[RoutePrefix("api/v1/test")]
public class TestController : ApiController
{
    [HttpGet]
    public TestString Get()
    {
        return new TestString { str = "HELLO WORLD" };
    }
}
因此,当我转到URL
/api/v1/test
时,它会进入
Get()
函数

更新到Web API
5.0.0-rc1
后,当转到
/API/v1/test

然而,这是可行的:

[RoutePrefix("api/v1")]
public class TestController : ApiController
{
    [HttpGet("test")]
    public TestString Get()
    {
        return new TestString { str = "HELLO WORLD" };
    }
}
你能解释一下为什么这不再有效吗

**编辑**
[HttpGet(“”)
有效。然后它在
Get()
函数上中断。

我不确定,但我相信Http[Get,Post,etc]类型属性已经删除了它们的路由属性。此链接提示:

请注意,大多数基于属性的路由示例都是可用的 如今,在web上,正在使用[PUT]或[HttpPut]等旧属性 在最新位上不再受支持(当前可从 ASP.NET夜间构建, ),这些属性将替换为[Route]属性


请看和。基本上,我们的目标是将动词过滤器与属性路由分离。

谢谢,但是
[Route]
不起作用。然而,
[HttpGet(“”)
确实有效。我认为微软不知道他们要做什么。