Asp.net mvc MVC hybrid仍然调用default.aspx

Asp.net mvc MVC hybrid仍然调用default.aspx,asp.net-mvc,webforms,Asp.net Mvc,Webforms,我有一个集成了MVC5和Webforms的应用程序。我正在将它从WebForms转换为MVC,一步一个脚印。在添加控制器、VIE等之后,我添加了MVC路由,如下所示。但由于某些原因,当我启动应用程序(F5)时,仍然会打开Default.aspx页面,而不是我的主页/索引。我做错了什么 public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("Default.aspx/{*

我有一个集成了MVC5和Webforms的应用程序。我正在将它从WebForms转换为MVC,一步一个脚印。在添加控制器、VIE等之后,我添加了MVC路由,如下所示。但由于某些原因,当我启动应用程序(F5)时,仍然会打开Default.aspx页面,而不是我的主页/索引。我做错了什么

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

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

编辑:我刚想出来,但不明白为什么。似乎当我转到项目的属性并将服务器设置为“使用Visual Studio Development Server”时,它会在启动时显示我的Default.aspx页面。但当我将其更改为“使用本地IIS Web服务器”时,MVC Url路由将启动并打开我的主页\索引页。有人能给我解释一下吗?

只有在应用程序\u Start中注释掉路由注册,我才能重现上述行为(请参见下面my Global.asax中的注释行)。否则,它在示例webforms和mvc5混合项目中工作得非常好

这是我的Global.asax

void Application_Start(object sender, EventArgs e)
        {
            // Code that runs on application startup
            AreaRegistration.RegisterAllAreas();
            //GlobalConfiguration.Configure(WebApiConfig.Register);
            //RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);            
        }
这是我的路线图

public static void RegisterRoutes(RouteCollection routes)
        {
            var settings = new FriendlyUrlSettings();
            settings.AutoRedirectMode = RedirectMode.Permanent;
            routes.EnableFriendlyUrls(settings);

            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

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

我在问题中添加了更多细节。我可以通过更改项目属性中的服务器来复制该行为。但我不明白它为什么会这样做。您在“项目属性”->“Web”部分中的开始操作显示了什么?开始操作设置为“特定页面”,但它是空的。您可以将其更改为“当前页面”并查看是否有帮助吗?将其更改为“当前页面”,但当我选择Visual Studio Development Server(VSDS)时,会加载默认的.aspx页面. 这是否意味着在使用MVC时,必须选择本地IIS服务器?当我选择VSD时,它似乎不想使用MVC路由机制。