1

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

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

我已经检查并仔细检查过,每次尝试,成功和不成功,都被正确请求,但结果各不相同。我完全不知道方法名称如何产生任何影响。我试过重新启动,重新启动,它没有任何区别。

任何线索将不胜感激!

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

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

我认为相当标准。

4

2 回答 2

1

呃,它是前缀 - 'Get' - 它似乎告诉 WebAPI 该操作是从 GET 请求中调用的。通过将“HttpPost”(在 System.Web.Http 中)属性添加到该方法可以轻松解决。

于 2012-08-25T13:12:22.200 回答
0
[HttpGet]
[ActionName("GetChildNode")]
public ReturnValue GetChildNode()
于 2013-02-16T12:36:06.347 回答