我正在尝试Route
完全根据this从基本 Controller 继承属性。虽然它似乎工作正常,但它搞乱了以前的工作动作。
下面是我的基本控制器和子控制器的最小示例。
[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
(for All
) 的情况下,ActionSelector
返回 2 个动作,既All
和LookupData
,从而导致错误。
我不确定为什么Route
即使在常规路线的情况下它也会选择具有属性的操作。我应该做些什么不同的事情?或者有什么可靠的方法来ActionSelector
解决这个问题?