Routing w obszarach

Routing w obszarach
DU
  • Rejestracja:około 9 lat
  • Ostatnio:prawie 4 lata
  • Postów:143
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

Kopiuj

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

Kopiuj
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

Kopiuj
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 }
            );
        }
    }
DU
  • Rejestracja:około 9 lat
  • Ostatnio:prawie 4 lata
  • Postów:143
0

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

somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:6 dni
  • Lokalizacja:Wrocław
0

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

DU
  • Rejestracja:około 9 lat
  • Ostatnio:prawie 4 lata
  • Postów:143
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

somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:6 dni
  • Lokalizacja:Wrocław
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.

DU
  • Rejestracja:około 9 lat
  • Ostatnio:prawie 4 lata
  • Postów:143
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.