在一个控制器中,两个HttpGet处于同一路由上

我有以下代码:

非通用控制器:

<None Update="config.json">
  <CopyToPublishDirectory>Always</CopyToPublishDirectory>
  <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>

通用控制器:

    [Route(Route)]
    public class DogsController : EntityControllerBase<Dog,DogDto>
    {
        public const string Route = "api/dogs";
        public DogsController(IDogsRepository repository) : base(repository)
        {
        }

        [ProducesResponseType(200,Type = typeof(DogDto))]
        [HttpGet)]
        public async Task<actionResult<IEnumerable<DogDto>>> Get([FromQuery]int kennelId,[FromQuery]DateTimeOffset birthDate)
        {
            return Ok("Hit non-generic controller");
        }

        protected override DogDto ToDto(Dog instance) =>
            new DogDto(instance.Id,instance.BirthDate,instance.KennelId
                instance.Name);
    }

当用户提供查询参数 public abstract class EntityControllerBase<TEntity,TEntityDto> : ControllerBase where TEntity : IIdentifiable<int> { readonly IRepository<TEntity,int> _repository; protected EntityControllerBase(IRepository<TEntity,int> repository) { _repository = repository; } protected abstract TEntityDto ToDto(TEntity instance); [HttpGet] [ProducesResponseType(200)] public async Task<actionResult<IEnumerable<TEntityDto>>> Getall() { var instances = await _repository.Getall(); return Ok(instances.Select(ToDto)); } } /api/dogs时,我想在kennelId上调用非通用控制器,否则调用通用方法。现在,它总是调用通用控制器。我该如何解决?

cheater_911 回答:在一个控制器中,两个HttpGet处于同一路由上

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3113810.html

大家都在问