Смешивание WebForms и MVC5 не работает

У меня есть код ниже для моей маршрутизации для веб-форм и MVC.

MVC маршрутизация, кажется, работает нормально, но не веб-формы, когда я смешиваю оба.

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

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

    //WebForms
    routes.MapPageRoute(
        "myPage",
        "page/companyInfo/{*queryvalues}",
        "~/company/details.aspx"
        );   

Нужно ли мне писать оператор IgnoreRoute для страницы details.aspx?

1 ответ

Решение

Измените порядок маршрутов, маршрут MVC должен быть внизу, так как по умолчанию это, в общем, универсальное решение. MVC обрабатывает маршруты сверху вниз, если он находит совпадение, он прекращает поиск и направляет вас к сопоставленному маршруту.

        //WebForms
        routes.MapPageRoute(
            "myPage",
            "page/companyInfo/{*queryvalues}",
            "~/company/details.aspx"
            );

       //MVC        
        routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
Другие вопросы по тегам