Регистрация маршрутов в области регистрации

У меня есть два маршрута в моем районе, один пользовательский и один резервный маршрут по умолчанию, см. Ниже

        var dashboardRoute = new DashboardRoute(
            ObjectFactory.GetInstance(),
            ObjectFactory.GetInstance(),
            null);
        context.Routes.Add(dashboardRoute);

        context.Routes.MapRoute(
            "Dashboard_Default", // Route name
            "dashboard/{controller}/{action}/{id}", // URL with parameters
            new { controller = "pages", action = "index", id = UrlParameter.Optional, area = "Dashboard" } // Parameter defaults
        );

, когда я добавляю оба маршрута с помощью context.Routes.Add / MapRoute, последний маршрут не работает, но когда Я использую context.MapRoute на последнем маршруте, который работает, но GetVirtualPath в моем пользовательском маршруте не используется для ссылок на действия. Я думал, что MapRoute был просто расширением context.Routes. Добавлять? Как лучше всего отлаживать маршруты? Я использовал отладку маршрута Phil Haacks , но она не работает с моим настраиваемым маршрутом, есть ли другой способ отладки маршрутов?

Мне действительно нужна помощь. Мои регистрации маршрутов в области моей панели инструментов выглядят так:

        var dashboardRoute = new PagesRoute(
            ObjectFactory.GetInstance(),
            ObjectFactory.GetInstance(),
            null);
        context.Routes.Add("Dashboard", dashboardRoute);

        context.MapRoute(
            "Dashboard_default",
            "dashboard/{controller}/{action}/{id}",
            new { controller = "dashboard", action = "index", id = UrlParameter.Optional }
        );

PageRoute - это настраиваемый маршрут, и вы можете найти код здесь http://bit.ly/er6HPn С этими активными маршрутами такая ссылка отлично работает Html.ActionLink («Управление ролями», «менеджеры», «учетная запись»), но когда у меня есть ссылка, которая должна работать с моим настраиваемым маршрутом, например Html.ActionLink (page.MetaData. Name, "edit", "pages", new {document = page}, null) результат будет http: //stormbreaker.local/dashboard/pages/edit? Document = Stormbreaker.Example.Models.Page , это означает, что GetVirtualPath в моем PageRoute никогда не используется. Может ли кто-нибудь объяснить мне способ и как я могу это исправить?

5
задан Marcus 28 January 2011 в 16:12
поделиться