Asp.net mvc MVC4路由2包含同名控制器的区域
我在mvc4应用程序中有2个区域,并且我已经为每个区域注册了名称空间Asp.net mvc MVC4路由2包含同名控制器的区域,asp.net-mvc,Asp.net Mvc,我在mvc4应用程序中有2个区域,并且我已经为每个区域注册了名称空间 public override void RegisterArea(AreaRegistrationContext context) { context.MapRoute( "Intergration_default", "Intergration/{controller}/{action}/{id}", new { action
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Intergration_default",
"Intergration/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
constraints: null,
namespaces: new[] { "WebApplication.Areas.Intergration.Controllers" }
);
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Vend_default",
"Vend/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional},
constraints: null,
namespaces: new[] { "WebApplication.Areas.MyController.Controllers" }
);
我可以访问integration/MyController,但是当我尝试访问MyController时,会出现错误
找到多个与名为“mycontroller”的控制器匹配的类型。如果为该请求提供服务的路由(“{controller}/{action}/{id}”)未指定名称空间来搜索与该请求匹配的控制器,则可能发生这种情况。如果是这种情况,请通过调用采用“namespaces”参数的“MapRoute”方法的重载来注册此路由
我做错了什么?我是否需要在全局中做一些额外的事情。asax根据您提供的代码/描述,听起来可能有几件事:
Vend
的第二次区域注册的名称空间看起来不正确。而不是WebApplication.Areas.MyController.Controllers
它应该是WebApplication.Areas.Vend.Controllers
。我打赌在根控制器命名空间中有一个控制器,它与Vend
区域中的某个对象共享一个控制器名称