C# 控制器查询参数(未运行)

C# 控制器查询参数(未运行),c#,asp.net-core,asp.net-web-api,C#,Asp.net Core,Asp.net Web Api,我正在尝试制作一个类似OPENBANKPROJECT的api。比如 /api/banks/{BANK_ID}/atms/{ATM_ID}等等。我想银行和ATM是不同的控制器 我想在初始化(可能在构造函数中)之前获得一个全局(api/Claim/{id}/Detail/[action]我需要这个{id})参数 如何在[action]初始化之前获取此{id} [Route("api/Claim/{id}/Detail/[action]")] public class ClaimDet

我正在尝试制作一个类似OPENBANKPROJECT的api。比如
/api/banks/{BANK_ID}/atms/{ATM_ID}
等等。我想
银行
ATM
是不同的控制器

我想在初始化(可能在构造函数中)之前获得一个全局(
api/Claim/{id}/Detail/[action]
我需要这个{id})参数


如何在
[action]
初始化之前获取此
{id}

    [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; }
    }
[路由(“api/Claim/{id}/Detail/[action]”)
公共类ClaimDetailController
{
int _id;//赋值{id}
公共ClaimDetailController(IClaimDetailService claimDetailService)
{
`执行操作前需要查询Id`
}
[HttpPost]
公共异步任务ClaimDetailInfoPolicy(ClaimDetailKeyModel模型)
{
返回'code with_id';
}
}
公共类ClaimDetailKeyModel
{
公共长文件no{get;set;}
公共长资源No{get;set;}
}

将此id添加到您的请求处理程序中

[HttpPost]
public async Task<BaseResponse> ClaimDetailInfoPolicy(int id, ClaimDetailKeyModel model)
{
    return `codes`;
}
[HttpPost]
公共异步任务ClaimDetailInfoPolicy(int id,ClaimDetailKeyModel模型)
{
返回“代码”;
}
解决方案很简单:)

[ApiController]
[路线(“api/Claim/{claimId}/Detail/[action]/”)
公共类ClaimDetailController
{
[FromRoute(Name=“claimId”)]
公共int Id{get;set;}
公共ClaimDetailController(IClaimDetailService claimDetailService)
{
`布拉布拉`
}
[HttpPost]
公共异步任务ClaimDetailInfoPolicy(ClaimDetailKeyModel模型)
{
return`Id为的代码`
}
}

“如何在
[action]
初始化之前获得这个
{id}
?”您已经完成了
[Route(“api/Claim/{id}/Detail/[action]”)
,只需将id如上所述,它应该可以工作。检查这个:检查我的答案@Alexander这是一个很好的解决方案:)并且我正在使用
[ApiController]
atturibute。你有关于atturibute的解决方案吗?@Alexander该解决方案是第二个:)@Alexander:)只需使用带有属性的FromRoute:)
[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`
    }
}