2013-09-01 92 views
1

我從網絡API 5.0.0-beta2更新爲5.0.0-rc1之前,我可以做這樣的事情:的Web API 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()功能。

更新到網頁API 5.0.0-rc1後,我收到了404去/api/v1/test

然而,當這工作:

[RoutePrefix("api/v1")] 
public class TestController : ApiController 
{ 
    [HttpGet("test")] 
    public TestString Get() 
    { 
     return new TestString { str = "HELLO WORLD" }; 
    } 
} 

你能解釋爲什麼這不能再工作下去?

** 編輯 ** [HttpGet("")]作品。然後它打破了那個Get()函數。

回答

2

我不確定,但我相信Http [Get,Post等]類型屬性已刪除其路由屬性。此鏈接提示吧:

http://blogs.microsoft.co.il/blogs/bnaya/archive/2013/08/28/asp-net-web-api-attribute-based-routing.aspx

知道,在網絡上大部分的屬性的基於路由可提供樣品 的今天,使用舊的屬性,例如[PUT]或[HttpPut]這 沒有最新的位支持(當前可從 ASP.NET每晚構建,http://www.myget.org/F/aspnetwebstacknightly/ ),這些屬性用[Route]屬性替換。

請參閱https://aspnetwebstack.codeplex.com/SourceControl/list/changesetshttps://aspnetwebstack.codeplex.com/workitem/1206。基本上,目標是將動詞過濾器從屬性路由中分離出來。

+0

謝謝你,但'[Route]'不工作。但是'[HttpGet(「」)]'工作。我認爲微軟不知道他們會做什麼。 – Gaui