Aspnetcore: Asp.netコアWebAPIプロジェクトでエリアを使用できますか?

作成日 2019年01月19日  ·  3コメント  ·  ソース: dotnet/aspnetcore

Asp.netコアWebAPIプロジェクトであるプロジェクトに取り組んでいます。ほとんどのプロジェクトはAsp.netMVCとCoreMVCで行いましたが、Core WebAPIに基づいて新しいプロジェクトを行います。 Core MVCには、管理パーツなどのAreasを作成できるAreasの概念があります。しかし、Asp.netコアWeb APIプロジェクトでAreasを使用できますか? はいの場合、どうすればよいですか? もっと良い方法があると思っているなら教えてください。

area-mvc

最も参考になるコメント

APIコントローラーをエリアに配置して、グループ化することができます。 ただし、基本的にはコントローラーでルートを提供するため、自分でさまざまなルートを作成できます。
[Route("api/myarea/v1/[controller]")]

全てのコメント3件

APIコントローラーをエリアに配置して、グループ化することができます。 ただし、基本的にはコントローラーでルートを提供するため、自分でさまざまなルートを作成できます。
[Route("api/myarea/v1/[controller]")]

ApiControllerを自分の領域の下に置いて試したのと同じ問題があるため、構造は次のようになります。

これが内部のApiコントローラーです

エリア/ GL /コントローラー

[Area("GL")] [Route("api/[controller]")] [ApiController] [HttpGet] public IActionResult Get() { return Ok("api controller"); }

しかし、自分のURLにアクセスすると
http:// localhost :48357 / GL / Api / Get
または
http:// localhost :48357 / Api / GL / Get
また
http:// localhost :48357 / Api / Get
私は得る

ステータスコード:404; 見つかりません

これがのコードです

Startup.cs

routes.MapAreaRoute( name: "AreaGL", areaName: "GL", template: "GL/{controller=Home}/{action=Index}/{id?}" );

この問題について私を助けてください、私がここで間違っていることは何ですか?

@farhadibehnamまでお問い合わせいただきありがとうございます。
コントローラーをエリアに配置するには、 https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/areasで説明されているように、属性ルートに{area:exists}ルート制約を適用する必要があります。 view = aspnetcore-2.2。

このページは役に立ちましたか?
0 / 5 - 0 評価