MVC路由不明确

本文关键字:不明确 路由 MVC | 更新日期: 2023-09-27 18:27:03

我有一条心理路径:Home/signUp.aspx

Controller/HomeController.cs (related to Views/home/index.aspx)

我的路由在全局中配置。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我得到一个带有"目录内容"的文本页面

如何修复此路由?

MVC路由不明确

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

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

http://msdn.microsoft.com/en-us/library/cc668201.aspx#scenarios_when_routing_is_not_applied

为什么您的家庭控制器是一个aspx文件?试着让它成为HomeController.cs!

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