0

thisRouteに従って、ベースコントローラーから属性を継承しようとしています。正しく動作しているように見えますが、以前に動作していたアクションが台無しになります。

以下は、私の基本コントローラーと子コントローラーの最小限の例です。

[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 つのアクションを返すため、エラーが発生します。AllLookupData

Route通常ルートなのになぜ属性付きのアクションを選択しているのかわかりません。どうすればいいですか?ActionSelectorまたは、この問題に対してa を作成する堅牢な方法はありますか?

4

1 に答える 1

0

空の [Route] をAllメソッドに追加してみてください:

[HttpGet]
[Route]
public IEnumerable<TDto> All(){
    ...
}
于 2016-08-25T05:20:25.897 に答える