Asp.net web api Web API 5.0.0-rc1中断默认路由
在我从Web APIAsp.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
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 API5.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(“”)
确实有效。我认为微软不知道他们要做什么。