不同的控制器具有相同的名称,在路由冲突
两个不同的领域取得成果,我有两个方面:不同的控制器具有相同的名称,在路由冲突
ControlPanel
和Patients
。
两者都有一个名为ProblemsController这是唯一的名字类似的控制器。所期望的结果将是,产生/ ControlPanel控制/问题=> MyApp.Areas.ControlPanel.Controllers.ProblemsController和/患者/问题=> MyApp.Areas.Patients.Controllers.ProblemsController路由。
每个人都有路由配置是这样的:
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"**Area Name Here**_default",
"**Area Name Here**/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
其中*****区域名称这里*****或者是ControlPanel控制或患者。
当我去/病人/问题/创建(例如),我得到一个404,在路由错误说:A public action method 'create' was not found on controller 'MyApp.Areas.ControlPanel.Controllers.ProblemsController'
。
我不知道我在做什么错。
其实,原来的问题是与Autofac 2.1的AutofacControllerFactory
。这些路线工作正常,但autofac很难找到正确的控制器。
对于那些使用Autofac和MVC 2.0,Autofac 2.1不具备的地区的支持。如果你的项目是很简单的,Autofac可能出现与地区工作,但它会开始打破作为你的领域和控制器变得更加复杂。
完整区域支持的门票已关闭,相关代码也已签入,但从我所知道的情况来看,直到2.2版本才会发布。我会试着从后备箱里修建,然后我会报告它是怎么回事。
UPDATE 是的,一切看起来不错,使用自行车从树干建成。希望2.2将很快正式发布。