2013-10-11 174 views
2

我環顧四周試圖找到一些關於此的帖子,並且有很多很多但沒有解決我的具體問題(我可以找到)。不允許在ASP.Net Web API控制器中使用405方法

在我的API控制器還有很多其他的方法與「GET」這是工作正常,但是當我添加了一個新的方法,它的返回405方法不被允許消息

[GET("GetNames/{Id}/{Age}")] 
public List<Names> Names(long Id, string Age) 
    { 
    ... 
    ... 
    } 

但是當我把我的方法[System.Web.Http.HttpGet]它開始工作。

[System.Web.Http.HttpGet] 
[GET("GetNames/{Id}/{Age}")] 
public List<Names> Names(long Id, string Age) 
    { 
    ... 
    ... 
    } 

任何人都可以請解釋我我做錯了什麼或這是正確的方法。我發現幾乎相同的問題MVC AttributeRouting With..405 when using..但仍然困惑。

回答

0

如果未指定「Get」,「Post」,「Put」,「Delete」等動詞,則默認情況下,Web API假定動作爲動詞POST。

此外,您還明確給出了[GET(「GetNames/{Id}/{Age}」)]屬性,並且它是GETAttribute的一個對象。 行動選擇看起來像HTTPGET,HttpGetAttribute,HttpPostAttribute,HttpPutAttribute等

So remove [GET("GetNames/{Id}/{Age}")]. 
do not remove [HttpGet] 
Create a custom route in app_start/WebApiConfig.cs file for this action if needed. 

希望這有助於從System.Web.Http名稱空間的屬性。

0

,如果你有

using System.Web.Mvc; 

將其刪除,並添加

using System.Web.Http;