Multiple HttpGet actions in a Web Api Controller
<p>I have a controller with the following actions defined:</p>

<pre><code>public IHttpActionResult Get(int id) {}

[ActionName("Orders")]
public IHttpActionResult GetOrders(int id) {}
</code></pre>

<p>And my routing is as follows:</p>

<pre><code>config.Routes.MapHttpRoute(
    name: "ControllerWithId",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { id = RouteParameter.Optional },
    constraints: new { id = @"^[0-9]+$" }
);

config.Routes.MapHttpRoute(
    name: "ControllerWithAction",
    routeTemplate: "api/{controller}/{action}",
    defaults: new { action = "Get" },
    constraints: null
);

config.Routes.MapHttpRoute(
    name: "ControllerWithIdAndAction",
    routeTemplate: "api/{controller}/{id}/{action}",
    defaults: new { id = RouteParameter.Optional },
    constraints: new { id = @"^[0-9]+$" 
};
</code></pre>

<p>I would like to call the GetOrders as follows:</p>

<pre><code>/api/Customers/1/Orders
</code></pre>

<p>However, I get the exception:</p>

<blockquote>
  <p>Multiple actions were found that match the request: Get</p>
</blockquote>

<p>What is the correct routing in this case?</p>