可能重复:
如何注册已在AREA中创建的控制器
我有一个问题 - 是否可以做下一个?
我有三个方面:
_Default
SiteOne
SiteTwo
Run Code Online (Sandbox Code Playgroud)
在每个区域内我都有一个名称相同的ApiController,但当然在不同的名称空间中:
MvcAppliaction.Areas._Default.Controllers.ValuesController
MvcAppliaction.Areas.SiteOne.Controllers.ValuesController
MvcAppliaction.Areas.SiteTwo.Controllers.ValuesController
Run Code Online (Sandbox Code Playgroud)
我还有一个当前值(我想使用)的配置区域.
如果他进入浏览器,我想将用户映射到适当区域(我可以在配置中找到)中的控制器:
/api/values
Run Code Online (Sandbox Code Playgroud)
例如,如果配置文件中的当前区域是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") }
);
Run Code Online (Sandbox Code Playgroud) c# asp.net-mvc-areas asp.net-web-api asp.net-web-api-routing