我已经使用MVC4 / WebAPI构建了我的Web服务的一个非常奇怪的问题。
基本上,我有一个名为'GetChildNodes'的方法,当我请求它时,它给了我一个405:Method Not Allowed状态代码。如果我将其重命名为'Test',它就可以了。如果我将其重命名为“GCN”,则可行。如果我将其重命名为'GetChildNode',我会得到同样的错误。
我已经检查并进行了双重检查,并且每次尝试成功和不成功都被正确请求,但结果各不相同。关于方法名称如何产生任何不同,我完全失去了。我尝试重新启动,重新启动,没有任何区别。
任何线索都会受到赞赏!
如果有帮助,这就是我配置服务的方式:
config.Routes.MapHttpRoute("DefaultApi", "api/{controller}/{action}");
我认为相当标准。
答案 0 :(得分:1)
Urgh,这是前缀 - ' Get' - 这似乎告诉WebAPI从GET请求调用该操作。通过添加' HttpPost'轻松解决问题。 (在System.Web.Http中)属性的方法。
答案 1 :(得分:0)
[HttpGet]
[ActionName("GetChildNode")]
public ReturnValue GetChildNode()