说我在控制器中有这些方法:
Get()
[HttpGet]
FindSomeone()
我有一个默认路由和一个包含操作的路由: routeTemplate:“api / {controller} / {action}”。
当我调用/ mycontroller / FindSomeone时工作正常,但当我调用GET / mycontroller /时出现多个匹配路由错误。
有没有办法让默认路由只匹配Get()方法,并跳过FindSomeone()方法?
答案 0 :(得分:0)
为主路由
中的所有控制器声明默认Get
操作
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional, action ="Get" }
);
答案 1 :(得分:0)
在这种情况下,AttributeRouting可以更好地为您工作。它应该像使用Get Attribute,
装饰这两个方法一样简单[RoutePrefix("mycontroller")
public class MyController
{
[GET("")]
Get()
[GET("FindSomeone")]
FindSomeone()
}
这将使这些方法可用作mycontroller和mycontroller / FindSomeone。