Вам необходимо определить TeamApiController
как класс abstract
, чтобы он не распознавался как Controller
. При этом вам нужно будет переместить все атрибуты в производный класс. Итак, ваш TeamApiController
станет
public abstract class TeamApiController : ControllerBase
{
/// <summary>
///
/// </summary>
/// <param name="teamID"></param>
/// <response code="200">Success</response>
public virtual IActionResult GetStaffMembersByTeamID(int? teamID)
{
// return null;
}
}
И ваш TeamTmpController
станет
public class TeamTmpController : TeamApiController
{
private readonly IStaffService staffService;
public TeamImpController(IStaffService staffService)
{
this.staffService = staffService;
}
[HttpGet]
[Route("/api/Team/{teamID}/members")]
[ValidateModelState]
[SwaggerOperation("GetStaffMembersByTeamID")]
[SwaggerResponse(statusCode: 200, type: typeof(TeamDetails), description: "Success")]
public override IActionResult GetStaffMembersByTeamID([FromRoute][Required]int? teamID)
{
// write my override method
}
}
Если у вас есть другой контроллер, унаследованный от TeamApiController
, и вам нужны базовые функции. Просто вызовите return base.GetStaffMembersByTeamID
или другие методы по мере необходимости. Надеюсь, это поможет.
Примечание : это проверенный подход, который я использовал в одном из моих проектов. Я также протестировал приведенный выше код, просто чтобы убедиться, что он работает.