Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc MVC4路由2包含同名控制器的区域_Asp.net Mvc - Fatal编程技术网

Asp.net mvc 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

我在mvc4应用程序中有2个区域,并且我已经为每个区域注册了名称空间

 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
    区域中的某个对象共享一个控制器名称