是否可以继承控制器
本文关键字:控制器 继承 是否 | 更新日期: 2023-09-27 18:34:48
我有一个继承自ApiController
的控制器:
[RoutePrefix("v0")]
public class MyControllerV0 : ApiController {...}
我想创建所有路线的新版本:
[RoutePrefix("v1")]
public class MyControllerV1 : MyControllerV0 {
public MyControllerV1() : base() {}
}
当我添加第二个代码段时,MyControllerV0
中的路由变得无法访问,并且两个前缀都会导致404
。
我是否缺少额外的设置来实现此目的,或者是否不支持?
你可以继承,但我不确定是否[RoutePrefix()]
使用它。 相反,我们使用 全[Route()]
.
试试这个:
public class MyControllerV0 : ApiController {
[Route("/api/v0/foo")]
public async Task<IHttpActionResult> V0() {
}
}
public class MyControllerV1 : MyControllerV0 {
[Route("/api/v1/foo")]
public async Task<IHttpActionResult> V1() {
}
}