可能重复:
How do I register a controller that has been created in an AREA控制器通过区域
我有这个问题 - 是有可能做下?
我有三个方面:
_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控制器,但是如果我将配置文件中的当前区域更改为SiteTwo的_Default,它应该映射到正确的控制器。
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") }
);
谢谢。我认为还有另一种方式。所以,我会实现HTTP控制器工厂。 – Malkov 2012-03-26 08:56:44
没问题,很高兴能有帮助 – dmportella 2012-03-27 13:31:38