具有操作名称的奇怪Web API问题

时间:2012-08-25 13:01:38

标签: asp.net-mvc-4 asp.net-web-api

我已经使用MVC4 / WebAPI构建了我的Web服务的一个非常奇怪的问题。

基本上,我有一个名为'GetChildNodes'的方法,当我请求它时,它给了我一个405:Method Not Allowed状态代码。如果我将其重命名为'Test',它就可以了。如果我将其重命名为“GCN”,则可行。如果我将其重命名为'GetChildNode',我会得到同样的错误。

我已经检查并进行了双重检查,并且每次尝试成功和不成功都被正确请求,但结果各不相同。关于方法名称如何产生任何不同,我完全失去了。我尝试重新启动,重新启动,没有任何区别。

任何线索都会受到赞赏!

如果有帮助,这就是我配置服务的方式:

config.Routes.MapHttpRoute("DefaultApi", "api/{controller}/{action}");

我认为相当标准。

2 个答案:

答案 0 :(得分:1)

Urgh,这是前缀 - ' Get' - 这似乎告诉WebAPI从GET请求调用该操作。通过添加' HttpPost'轻松解决问题。 (在System.Web.Http中)属性的方法。

答案 1 :(得分:0)

[HttpGet]
[ActionName("GetChildNode")]
public ReturnValue GetChildNode()