Asp.net web api ASP.Net Web API控制器中不允许405方法

Asp.net web api ASP.Net Web API控制器中不允许405方法,asp.net-web-api,attributerouting,Asp.net Web Api,Attributerouting,我环顾四周,试图找到一些关于这方面的帖子,有很多,但没有一个能解决我的具体问题(我可以找到) 在我的Api控制器中,有许多其他带有“GET”的方法工作正常,但当我添加一个新方法时,它返回了405 method not allowed消息 [GET("GetNames/{Id}/{Age}")] public List<Names> Names(long Id, string Age) { ... ... } 谁能解释一下我做错了什么,或者这是正确的方法。

我环顾四周,试图找到一些关于这方面的帖子,有很多,但没有一个能解决我的具体问题(我可以找到)

在我的Api控制器中,有许多其他带有“GET”的方法工作正常,但当我添加一个新方法时,它返回了405 method not allowed消息

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

谁能解释一下我做错了什么,或者这是正确的方法。我发现了几乎相同的问题,但仍然感到困惑

如果未指定诸如“Get”、“POST”、“Put”、“Delete”之类的动词,则默认情况下,Web API假定操作为动词POST

您还显式地给出了[GET(“GetNames/{Id}/{Age}”)]属性,它是GETAttribute的一个对象。 操作选择器从System.Web.Http命名空间中查找属性,如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.
希望这有帮助。

如果您有

using System.Web.Mvc; 
删除它并添加

using System.Web.Http;
using System.Web.Http;