我有一个继承自ApiController
的控制器:
[RoutePrefix("v0")]
public class MyControllerV0 : ApiController {...}
我想创建所有路线的新版本:
[RoutePrefix("v1")]
public class MyControllerV1 : MyControllerV0 {
public MyControllerV1() : base() {}
}
当我添加第二个代码段时,MyControllerV0
中的路由无法访问,两个前缀都会导致404
。
我是否还有一个额外的设置文件可以实现此目的,或者是否不支持?
答案 0 :(得分:0)
您可以继承,但我不确定是否使用[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() {
}
}