ASP.NETMVCアプリケーションでエリアルートを設定しようとしています。
また、通常のMVCレジスター領域のルートではなく、nugetパッケージのAttributeRoutingを使用しています。
私の理解では、エリアルートは次のようになります。/area/controller/method
私がやろうとしていることは:-/api/search/index
つまり:
- エリア=>API
- コントローラー=>SearchController
- ActionMethod=>インデックス
。
[RouteArea("Api")]
public class SearchController : Controller
{
[POST("Index")]
public JsonResult Index(IndexInputModel indexInputModel) { .. }
}
しかし、それはそのルートを作成しません。これはそれが作成するものです:/api/index
コントローラーsearch
がありません。
ドキュメントを見て気づいたRoutePrefix
ので、これを試してみました。
[RouteArea("Api")]
[RoutePrefix("Search")]
public class SearchController : Controller
{
[POST("Index")]
public JsonResult Index(IndexInputModel indexInputModel) { .. }
}
そしてそれは実際にルートを作成します/api/search/index
。
しかし、なぜ私RoutePrefix
はそこに入れる必要があるのですか?SearchController
これがaであることをすでに理解し、3セグメントルートを作成するのに十分賢いのではないでしょうか。