Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.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
C# asp.net mvc区域和主站点具有相同的控制器名称_C#_Asp.net Mvc_Asp.net Mvc Routing - Fatal编程技术网

C# asp.net mvc区域和主站点具有相同的控制器名称

C# asp.net mvc区域和主站点具有相同的控制器名称,c#,asp.net-mvc,asp.net-mvc-routing,C#,Asp.net Mvc,Asp.net Mvc Routing,我已经创建了我的主要前端站点。我已经添加了我的区域并开始在后端工作。这两个部分都进行得很顺利,只是有一件事让我感到不安 我想在这两个区域都有一个家庭控制器,但得到的错误是,我不能有超过一个。我已经学了一些教程,但运气不好。这是我最后一次尝试 我启动了一个新项目,只是为了测试这一点,这是我的注册路由代码: public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.ax

我已经创建了我的主要前端站点。我已经添加了我的区域并开始在后端工作。这两个部分都进行得很顺利,只是有一件事让我感到不安

我想在这两个区域都有一个家庭控制器,但得到的错误是,我不能有超过一个。我已经学了一些教程,但运气不好。这是我最后一次尝试

我启动了一个新项目,只是为了测试这一点,这是我的注册路由代码:

public static void RegisterRoutes(RouteCollection routes) {
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
            "Default", // Route name 
            "{controller}/{action}/{id}", // URL with parameters 
            new { controller = "Home", action = "Index", id = UrlParameter.Optional },// Parameter defaults 
            new String[] { "Test.Controllers" }
    );
}
我已将此代码放在我的Global.asax.cs文件中?这似乎没有任何帮助。以下是我的实际错误:

“主页”请求已找到以下匹配控制器: Test.Areas.Portal.Controller.HomeController 测试控制器

任何提示或指点都会很棒!我已经讨论了这里提出的其他问题,但是他们都说要做我已经在做的事情,就是添加我上面所做的功能


控制器路径:
区域-门户-控制器-HomeController.cs


Controllers-HomeController.cs

我认为您需要在默认路径的上方再添加一个
MapRoute

routes.MapRoute(.....,"Area/Portal/{controller}/{action}/{id},.....,new string[]{...namespce....});

或者可以查看此帖子

尝试在IgnoreRoute行之后立即插入以下内容

AreaRegistration.RegisterAllAreas();
编辑:

我尝试创建一个新项目,并添加一个带有主控制器的新区域。只要运行应用程序,我就能重现您的错误

进行与您相同的代码更改修复了此问题

我建议右键单击系统托盘中的ASP.NET Development server图标并单击退出,然后尝试重新运行应用程序


如果这不能解决问题,仔细检查您在RegisterRoutes方法中指定的名称空间是否与默认控制器的完整名称空间完全匹配。

这两个区域中的HomeController是什么意思?我将在上面添加我的文件夹结构,以便您可以看到我在尝试什么。门户HomeController和根HomeController的名称空间是什么?必须我在家的桌面上打开了这个项目,运行了完全相同的代码,它工作了。我尝试重新启动Dev服务器,但在另一台电脑上没有帮助。谢谢你的帮助。