Asp.net mvc 删除MVC中的控制器名称

Asp.net mvc 删除MVC中的控制器名称,asp.net-mvc,routes,Asp.net Mvc,Routes,我在“根”文件夹中有两个名为“索引”和“联系人”的视图。我在global.asax中完成了以下操作` 控制器:rootController 视图:Roor/index.cshtml,Roor/Contact.cshtml public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

我在“根”文件夹中有两个名为“索引”和“联系人”的视图。我在global.asax中完成了以下操作` 控制器:rootController 视图:Roor/index.cshtml,Roor/Contact.cshtml

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

            routes.MapRoute(
               name: "Contact",
               url: "root/Contact",
               defaults: new { controller = "Root", action = "Contact", id = UrlParameter.Optional }
           );
            routes.MapRoute(
               name: "Default",
               url: "{controller}/{action}/{id}",
               defaults: new { controller = "Root", action = "Index", id = UrlParameter.Optional }
           );

        }
当我运行URL时,正在加载索引页。 但是当我为运行时,得到了404错误。运行localhost时:8889/Root/Contact正在成功加载。
我想在URL中运行不带root的联系人。

尝试从您的
联系人
路径中删除
root/
,如下所示

routes.MapRoute(
    name: "Contact",
    url: "Contact",
    defaults: new { controller = "Root", action = "Contact", id = UrlParameter.Optional }
    );

移除
联系人
路线。它要求
ContactController
只能通过
root/Contact
访问默认根目录足以匹配控制器名称和控制器为什么不完全删除路由?