我有一个在ApiController中定义的方法。当方法定义如下:
public IEnumerable<QuestionResponse> Get()
一切都很好。但是我想将参数传递给该方法,但是当我将该方法定义为
时public IEnumerable<QuestionResponse> Get(int parid)
响应是405“请求的资源不支持http方法'GET'”。
如果没有为方法定义参数,则这两个网址都会路由到方法:
/api/questionresponse/224809
/api/questionresponse
但是当我为该方法定义一个参数时,这两个url都会产生405。
帮助?
FWIW
答案 0 :(得分:3)
如果您检查路线,则可以看到默认模板使用参数{id}
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
因此您需要将控制器签名更改为
public IEnumerable<QuestionResponse> Get(int id)
或编写自定义路线以支持参数parid