我正在尝试完全根据this从基础控制器继承Route
属性。虽然它似乎工作正常,但它会弄乱以前的工作行为。
以下是我的基本和子控制器的最小示例。
[RoutePrefix("api/{controller}")]
public class MyController<TEntity, TDto>: ApiController{
[HttpGet]
public IEnumerable<TDto> All(){
...
}
[HttpGet, Route("lookup")]
public virtual IEnumerable<TDto> LookupData(){
...
}
}
[RoutePrefix("api/entity")]
public class EntityController : MyController<Entity, DTO>
{
}
实现路由属性继承后,api/entity/lookup
操作有效,但在api/entity
(All
}的情况下,ActionSelector
返回2个操作,All
}和LookupData
,从而导致错误。
即使在常规路线的情况下,我也不确定为什么选择具有Route
属性的操作。我该怎么办?或者是否有任何可靠的方法为此问题编写ActionSelector
?
答案 0 :(得分:0)
尝试将空[路线]添加到All
方法:
[HttpGet]
[Route]
public IEnumerable<TDto> All(){
...
}