0

假设我在控制器中有这些方法:

Get() 

[HttpGet]
FindSomeone()

我有一个默认路由和一个带有操作的路由:routeTemplate: "api/{controller}/{action}"

当我调用 /mycontroller/FindSomeone 时工作正常,但当我调用 GET /mycontroller/ 时失败并出现多个匹配路由错误。

有没有办法让默认路由只匹配 Get() 方法,并跳过 FindSomeone() 方法?

4

2 回答 2

0

在这种情况下,AttributeRouting 可能更适合您。它应该像用 Get Attribute 装饰这两个方法一样简单,

[RoutePrefix("mycontroller")
public class MyController 
{
  [GET("")]
  Get() 

  [GET("FindSomeone")]
  FindSomeone()
}

这将使这些方法可用作 mycontroller 和 mycontroller/FindSomeone。

于 2013-03-21T13:09:23.537 回答
0

Get为主路由中的所有控制器声明默认操作

config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { id = RouteParameter.Optional, action ="Get" }
    );
于 2013-03-20T23:49:42.683 回答