Примечание. Я прочитал о новых функциях маршрутизации как части WebApi 2.2, чтобы разрешить наследование маршрутов. Однако это, похоже, не решает мою конкретную проблему. Кажется, он решает проблему наследования атрибутов маршрута уровня действия, но не префиксов маршрутов, определенных на уровне класса. http://www.asp.net/web-api/overview/releases/whats-new-in-aspnet-web-api-22#ARI
Я хотел бы сделать что-то вроде этого:
[RoutePrefix("account")]
public abstract class AccountControllerBase : ControllerBase { }
[RoutePrefix("facebook")]
public class FacebookController : AccountControllerBase
{
[Route("foo")]
public async Task<string> GetAsync() { ... }
}
[RoutePrefix("google")]
public class GoogleController : AccountControllerBase
{
[Route("bar")]
public async Task<string> GetAsync() { ... }
}
Я бы хотел, чтобы префикс маршрута account
наследовался, поэтому при определении контроллеров Facebook и Google я получаю маршруты:
~/account/facebook/foo
~/account/google/bar
В настоящее время маршруты определяются без части account
из базового класса.