说我有一个控制器的方法:WebAPI路由 - 如何使默认路由忽略命名方法?
Get()
[HttpGet]
FindSomeone()
我有一个默认路由,并用行动路线:routeTemplate: “API/{控制器}/{行动}”。
当我打电话给/ mycontroller/FindSomeone时失败,但多个匹配路径失败错误当我打电话给GET/mycontroller /时。
有没有办法让默认路由只匹配Get()方法,并跳过FindSomeone()方法?
说我有一个控制器的方法:WebAPI路由 - 如何使默认路由忽略命名方法?
Get()
[HttpGet]
FindSomeone()
我有一个默认路由,并用行动路线:routeTemplate: “API/{控制器}/{行动}”。
当我打电话给/ mycontroller/FindSomeone时失败,但多个匹配路径失败错误当我打电话给GET/mycontroller /时。
有没有办法让默认路由只匹配Get()方法,并跳过FindSomeone()方法?
声明默认Get
行动在主所有控制器路由
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional, action ="Get" }
);
这会禁用所有的东西但是Get - 我仍然需要POST/HEAD/etc。 – Evgeni 2013-03-21 00:19:15
它不会禁用任何东西。其他操作(POST,DELETE等)将继续工作。它只在url中未指定时定义默认操作。 – 2013-03-21 10:50:08
AttributeRouting migh在这种情况下工作,更好地为您。它应该是因为这两种方法有一个Get属性装潢简单,
[RoutePrefix("mycontroller")
public class MyController
{
[GET("")]
Get()
[GET("FindSomeone")]
FindSomeone()
}
这将使可作为和myController的myController的/ FindSomeone这些方法。
我看过它,问题是当你去GET/mycontroller/- 这两个会冲突,因为它们都是GET。 – Evgeni 2013-03-23 12:24:24
为什么不调用'/ mycontroller/get' – 2013-03-21 06:28:06