向WebAPI添加自定义方法

时间:2015-05-16 16:38:13

标签: asp.net-web-api

我是WebAPI的新手,我遇到了问题。我正在使用包含两个Get方法的API控制器。一个用于GetAll,而另一个用于根据ID检索数据。现在我想要做的是实现另一个获取string并返回记录的get方法。我已经制作了这个方法,并且认为它不起作用,因为我的路线是默认的API路线,就像:

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

当我添加新路线来调用我的自定义GetMethod时:

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

我能够调用我的自定义GetMethod,但现在我丢失了带有id参数的restful方法。我怎样才能使用这两种方法?

2 个答案:

答案 0 :(得分:0)

您是否尝试过仅使用第二条路线并将其称为

api/customer/get/1
api/customer/getall/
api/customer/getmethod/one

在上文中,customer是 controller 名称。你必须替换你的。

请检查 webapiconfig.cs 文件中是否有路由。请refer这篇文章获取更多帮助。

答案 1 :(得分:0)

最好不要改变路线。 您可以使用“操作名称”来区分呼叫,并可以添加更多功能。看看这个答案: How to add custom methods to ASP.NET WebAPI controller?