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セグメントルートを作成するのに十分賢いのではないでしょうか。