You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core中如何实现强类型控制器嵌套路由?

强类型实现父子控制器路由关联

我解决这个问题后分享出来,帮遇到同类问题的开发者参考,也欢迎大家提出更优方案或批评指正。

现有代码

父控制器

[ApiController] 
[Route("[controller]")]  
public class ParentController : ControllerBase
{
    [HttpGet] public string Get() => $"Hello, World!";
}

子控制器

[ApiController]
[Route("{parentId:int}/[controller]")]  
public class ChildController : ControllerBase
{
    [HttpGet("{childId:int}")] public string Get(int parentId, int childId) => $"Hello, World by child {childId} of parent {parentId}!";
}

需求与痛点

我需要让子控制器能通过路由/Parent/{parentId}/Child/{childId}访问,但直接硬编码父控制器名称的方式存在明显缺陷:这种路由写法不受类型系统保障,后续对父控制器名称进行重构时,很容易出现路由失效的问题,比如下面这种不推荐的写法:

[ApiController]
[Route("Parent/{parentId:int}/[controller]")]  
public class ChildController : ControllerBase

内容的提问来源于Stack Exchange,提问作者Igor Ganov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 00:37:40