ASP.NET / MVC:请求的资源不支持http方法'GET'

时间:2015-09-01 05:29:11

标签: c# asp.net-mvc asp.net-web-api

我有一个在ApiController中定义的方法。当方法定义如下:

public IEnumerable<QuestionResponse> Get() 

一切都很好。但是我想将参数传递给该方法,但是当我将该方法定义为

public IEnumerable<QuestionResponse> Get(int parid) 

响应是405“请求的资源不支持http方法'GET'”。

如果没有为方法定义参数,则这两个网址都会路由到方法:

/api/questionresponse/224809
/api/questionresponse

但是当我为该方法定义一个参数时,这两个url都会产生405。

帮助?

FWIW

1 个答案:

答案 0 :(得分:3)

如果您检查路线,则可以看到默认模板使用参数{id}

  config.Routes.MapHttpRoute( 
                name: "DefaultApi", 
                routeTemplate: "api/{controller}/{id}", 
                defaults: new { id = RouteParameter.Optional } 
            ); 

因此您需要将控制器签名更改为

public IEnumerable<QuestionResponse> Get(int id) 

或编写自定义路线以支持参数parid