C# 控制器查询参数(未运行)
我正在尝试制作一个类似OPENBANKPROJECT的api。比如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
/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`
}
}