Я получил код от другой команды, это веб-API .net core 2.2 с контроллером: CustomerDemandController
, и мне нужно создать еще один (ManagerDemandController
) с почти такими же методами. В обоих контроллерах у меня есть метод «Get by Id». который выглядит следующим образом:
[ApiVersion(Constants.LatestVersion)]
[Route("api/{version:apiVersion}/[controller]/")]
[ControllerName("customerdemands")]
[Produces("application/json")]
[EnableCors("SiteCorsPolicy")]
public class CustomerDemandController : ControllerBase
{
private const string GetByIdOperation = "GetById";
[Get("{id}", Name = GetByIdOperation)]
public async Task<ActionResult<CustomerDemandResponse>> GetAsync([FromRoute] string id)
=> await this.GetAsync(() => Service.GetByIdAsync(id),
ConversionHelper.Convert);
...
(тот же метод в другом контроллере с ManagerDemandResponse в качестве ответа). Теперь, когда я добавил новый контроллер, я хочу проверить, работает ли старый, и это больше не так из-за того, что в обоих контроллерах используется одинаковое имя маршрута «GetById».
Система. InvalidOperationException: Следующие ошибки произошли с информацией о маршрутизации атрибута:
Ошибка 1: Маршруты атрибутов с одинаковым именем 'GetById' должны иметь один и тот же шаблон: Действие: 'DemandManagement.Api.Controllers.CustomerDemandController.GetAsync (DemandManagement. Api) '- Шаблон:' api / {версия: apiVersion} / customerdemands / {id} 'Действие:' DemandManagement.Api.Controllers.ManagerDemandController.GetAsync (DemandManagement.Api) '- Шаблон:' api / {версия: apiVersion}/ managerdemands / {id} '
Как я могу иметь такие же шаблоны, как отличается имя контроллера?