C# MVC路由模糊

C# MVC路由模糊,c#,asp.net-mvc,C#,Asp.net Mvc,我有一条心灵之路:Home/signUp.aspx 和Controller/HomeController.cs(与Views/home/index.aspx相关) 我的路由在global.asax中配置: public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); ro

我有一条心灵之路:
Home/signUp.aspx

Controller/HomeController.cs(与Views/home/index.aspx相关)

我的路由在global.asax中配置:

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

     //settings - manage toolbars
        routes.MapRoute("SettingsManageToolbars", "home/{action}/{id}",
           new { controller = "Home", action = "Index", id = UrlParameter.Optional });

           routes.MapRoute(
               "Default",
                // Route name
               "toolbar/apps/{controller}/{action}/{id}",
                // URL with parameters
               new { controller = "Home", action = "Index", id = "" }
                // Parameter defaults
                );
        }
当我浏览到
home\signup.aspx
我得到一个带有“目录内容”的文本页面


如何修复此路由?

为什么您的家庭控制器是aspx文件?尝试将其设置为HomeController.cs


我建议删除当前控制器并通过上下文菜单(右键单击,添加)添加另一个控制器。

默认情况下,路由不会处理映射到Web服务器上现有物理文件的请求。即使请求与定义的模式(如{controller}/{action}/{id})匹配,路由也不会处理该请求

如果希望路由处理所有请求,甚至是指向文件的请求,可以通过将RouteCollection对象的RouteExistingFiles属性设置为true来覆盖默认行为。当您将此值设置为true时,所有与定义模式匹配的请求都由路由处理


在MVC中,您通常不再在路径中使用“.aspx”-该路由用于将url转换为对控制器和操作的调用;然后它将调用一个视图-它是.aspx或.ascx或其他什么。我不确定您是否完全理解MVC的目的。我也不确定我是否真的理解你的问题。删除routes.IgnoreRoute(“{resource}.aspx/{*pathInfo}”);那我为什么要进入
目录内容
页面?