Параметр запроса контроллера (не в действии) - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь сделать API, как OPENBANKPROJECT. Такие как /api/banks/{BANK_ID}/atms/{ATM_ID} et c. Я думаю, banks и atm - это другой контроллер

Я хочу получить глобальный (api/Claim/{id}/Detail/[action] мне нужен этот {id}) параметр перед тем, как [action] инициализировать (возможно, в конструкторе).

Как мне получить это {id} до [action] инициализации?

    [Route("api/Claim/{id}/Detail/[action]")]
    public class ClaimDetailController
    {
        int _id; // assignment {id} 
        public ClaimDetailController(IClaimDetailService claimDetailService)
        {
           `Need Query Id before execute action`
        }
        [HttpPost]
        public async Task<BaseResponse> ClaimDetailInfoPolicy(ClaimDetailKeyModel model)
        {
            return `codes with _id`;
        }
    }

    public class ClaimDetailKeyModel
    {
        public long FileNo { get; set; }
        public long RecourseNo { get; set; }
    }

Ответы [ 2 ]

1 голос
/ 05 февраля 2020

Решение было простым:)

[ApiController]
[Route("api/Claim/{claimId}/Detail/[action]/")]
public class ClaimDetailController
{
    [FromRoute(Name = "claimId")] 
    public int Id { get; set; }
    public ClaimDetailController(IClaimDetailService claimDetailService)
    {
      `bla bla`
    }

    [HttpPost]
    public async Task<BaseResponse> ClaimDetailInfoPolicy(ClaimDetailKeyModel model)
    {
        return `codes with Id`
    }
}
0 голосов
/ 05 февраля 2020

Добавьте этот идентификатор в ваш обработчик запросов.

[HttpPost]
public async Task<BaseResponse> ClaimDetailInfoPolicy(int id, ClaimDetailKeyModel model)
{
    return `codes`;
}
...