可能重复:
如何注册已在区域中创建的控制器
我有一个问题 - 可以做下一个吗?
我有三个领域:
_Default
SiteOne
SiteTwo
在每个区域内,我都有一个同名的 ApiController,但当然在不同的命名空间中:
MvcAppliaction.Areas._Default.Controllers.ValuesController
MvcAppliaction.Areas.SiteOne.Controllers.ValuesController
MvcAppliaction.Areas.SiteTwo.Controllers.ValuesController
我在配置中还有一个当前(我想使用的)区域的值。
如果他在浏览器中输入,我想将用户映射到适当区域中的控制器(我可以在配置中找到):
/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") }
);