In WebAPI you can specify an Order
in RouteAttribute
to determine which order the routes are matched in. For example the below will match /other
to GetOther
before matching /blah
to GetByName
[HttpGet, Route("{name}", Order = 1)]
public string GetByName(string name) { ... }
[HttpGet, Route("other")]
public string GetOther() { ... }
How would I do the same but with RoutePrefix
(which doesn't have an Order
property)? If it did it would looks something like this:
[RoutePrefix("foo", Order = 1)]
public class FooController : ApiController { ... }
[RoutePrefix("foo/bar")]
public class FooBarController : ApiController { ... }
Doing the above (without the imaginary Order
property) throws the following message when calling /foo/bar
:
Multiple controller types were found that match the URL
Is there existing functionality for getting around this (preferably with attributes)?