質問があります-次のことは可能ですか?
私には3つの領域があります:
_Default
SiteOne
SiteTwo
各エリア内には同じ名前のApiControllerがありますが、もちろん異なる名前空間にあります。
MvcAppliaction.Areas._Default.Controllers.ValuesController
MvcAppliaction.Areas.SiteOne.Controllers.ValuesController
MvcAppliaction.Areas.SiteTwo.Controllers.ValuesController
また、構成にcurrent(使用したい)Areaの値があります。
ユーザーがブラウザーに入力した場合、ユーザーを適切なエリア(構成で見つけることができます)のコントローラーにマップしたいと思います。
/api/values
たとえば、構成ファイルの現在の領域がSiteOneの場合、この要求はMvcAppliaction.Areas.SiteOne.Controllers.ValuesControllerコントローラーにマップする必要がありますが、構成ファイルの現在の領域を_DefaultのSiteTwoに変更すると、正しいコントローラーにマップする必要があります。
PS。MVCコントローラーを使用すると簡単です。ルートを設定するだけです。
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new[] { "MvcApplication.Web.Areas." + SiteName + ".Controllers") }
);