Routing w obszarach

0

Cześć,
Mam problem z Areas, a konkretniej z routingiem. Mógłby mi ktoś z Was wyjaśnić jak to jest, że ustawiając domyślną ścieżkę na Areas/Public nie mogę korzystać z Areas/Admin?

RouteConfig


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

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

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

PublicAreaRegistration

public class PublicAreaRegistration : AreaRegistration 
    {
        public override string AreaName 
        {
            get 
            {
                return "Public";
            }
        }

        public override void RegisterArea(AreaRegistrationContext context) 
        {
            context.MapRoute(
                "Public_default",
                "{controller}/{action}/{id}",
                new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
        }
    }

AdminAreaRegistration

public class AdminAreaRegistration : AreaRegistration 
    {
        public override string AreaName 
        {
            get 
            {
                return "Admin";
            }
        }

        public override void RegisterArea(AreaRegistrationContext context) 
        {
            context.MapRoute(
                "Admin_default",
                "Admin/{controller}/{action}/{id}",
                new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
        }
    }
0

Tak sobie teraz myślę, czy aby na pewno można tak rozdzielać projekt w samych Areas?

0

Najpierw rejestruj ścieżki bardziej specyficzne, czyli Admin, a potem dopiero Public.

0

No tak tylko zmiana kolejności w RouteConfig nic nie daje, a i tak jak sprawdzam debuggerem to rejestruje na samym początku PublicAreaRegistration na co jak mi się wydaję nie mam wpływu

0

W RouteConfig nie powinieneś raczej definiować AdminDefault, zwłaszcza bez podanego Area w formacie URLa. A PublicAreaRegistration jest chyba w ogóle zbędne.

0

Czyli jeśli się nie mylę to będę musiał stworzyć silnik widoków? Pytam ponieważ, po wywaleniu PublicAreaRegistration i AdminDefault według Twoich zaleceń apka coś się gubi i nie może znaleźć widoku. Dodatkowo dodałem namespace co też nie pomogło.

1 użytkowników online, w tym zalogowanych: 0, gości: 1