ASP.NET MVC4使用webforms Default.aspx作为起始页面

nam*_*nam 5 asp.net-mvc webforms asp.net-mvc-routing asp.net-mvc-4

我有一个ASP.NET MVC4应用程序,其中包含在Global.asax.cs中定义的以下路由.应用程序的起始页面是从Home控制器的操作方法Index()返回的Index.cshtml视图.然后,我添加了一个将Default.aspx作为起始页面的旧版ASP.NET WebForms应用程序.如何将此Default.aspx页面作为此集成MVC + WebForms应用程序的起始页面:

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

            routes.MapRoute(
                "Default",
                "{controller}.mvc/{action}/{id}",
                new { action = "Index", id = "" }
              );


              routes.MapRoute(
              "Root",
              "",
              new { controller = "Home", action = "Index", id = "" }
            );


        }
Run Code Online (Sandbox Code Playgroud)

Bre*_*ing 18

在Global.asax中尝试以下操作:

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

    // Web Forms default
    routes.MapPageRoute(
        "WebFormDefault",
        "",
        "~/default.aspx"
    );

    // MVC default
    routes.MapRoute(
        "Default",                          // Route name
        "{controller}/{action}/{id}",       // URL with parameters
        new { controller = "Home", action = "Index", id = UrlParameter.Optional }  // parameter default
    );
}
Run Code Online (Sandbox Code Playgroud)

此外,我认为你不需要路线的.mvc一部分Default.