.NET WebAPI Атрибут Маршрутизация и наследование

Я играю с идеей иметь базовый контроллер, который использует общий репозиторий, чтобы обеспечить основные методы CRUD для моих контроллеров API, чтобы я ненеобходимо дублировать один и тот же базовый код на каждом новом контроллере. Но у меня возникают проблемы с распознаванием атрибута маршрутизации, когда онs в базовом контроллере. Чтобы показать, в чем именно проблема, яу меня есть яМы создали действительно простой контроллер WebAPI.

Когда у меня есть метод Get в главном контроллере, и он наследуется от ApiController напрямую, я неУ меня нет проблем, и это работает, как и ожидалось.

[RoutePrefix("admin/test")]
public class TestController : ApiController
{
    [Route("{id:int:min(1)}")]
    public string Get(int id)
    {
        return "Success";
    }
}

Когда я перемещаю метод Get в базовый контроллер, он возвращает содержимое страницы 404.

[RoutePrefix("admin/test")]
public class TestController : TestBaseController
{

}

public class TestBaseController : ApiController
{
    [Route("{id:int:min(1)}")]
    public string Get(int id)
    {
        return "Success";
    }
}

Еще несколько интересных заметок:

Я могу получить доступ к действию в GET / Test / 1. Так что он все еще находит его на основе маршрута по умолчанию.

Когда я пытаюсь получить доступ к POST / admin / test, он возвращает следующий JSON {"

Сообщение":"Не найден ресурс HTTP, соответствующий URI запроса 'http://test.com/admin/test '. ","MessageDetail ":"Не найден тип, соответствующий контроллеру с именем 'admin '. "}

Кто-нибудь знает способ заставить маршрутизацию работать с атрибутами из базового контроллера?

Ответы на вопрос(3)

Ваш ответ на вопрос