Веб API. Универсальный контроллер с атрибутом маршрутизации
Эта проблема
Когда я создаю метод с маршрутом на реальном контроллере, скажите:«Апи / страна / что-то» ...
Когда я выполняю вышеуказанный запрос, мой код исполняется и данные возвращаются.
Но когда я пытаюсь вызвать мой маршрут на базовом контроллере. НАПРИМЕР:"Апи / страна / код / 123"
Я получаю ошибку 404.
Вопрос
Любая идея о том, как реализовать универсальные маршруты при использовании маршрутизации атрибутов?
Специальный контроллер
[RoutePrefix("Country")]
public class CountryController : MasterDataControllerBase<Country, CountryDto>
{
public CountryController(
IGenericRepository<Country> repository,
IMappingService mapper,
ISecurityService security) : base(repository, mapper, security)
{
}
}
База
public class MasterDataControllerBase<TEntity, TEntityDto> : ControllerBase
where TEntity : class, ICodedEntity, new()
where TEntityDto : class, new()
{
private readonly IMappingService mapper;
private readonly IGenericRepository<TEntity> repository;
private readonly ISecurityService security;
public MasterDataControllerBase(IGenericRepository<TEntity> repository, IMappingService mapper, ISecurityService security)
{
this.security = security;
this.mapper = mapper;
this.repository = repository;
}
[Route("code/{code}")]
public TEntityDto Get(string code)
{
this.security.Enforce(AccessRight.CanAccessMasterData);
var result = this.repository.FindOne(o => o.Code == code);
return this.mapper.Map<TEntity, TEntityDto>(result);
}
}