2011-01-26 23 views
5

Mam dwie trasy w mojej okolicy, jeden zwyczaj i jedną trasę domyślną awaryjnej, patrz poniżejdrogi zarejestrować się w rejestracji obszaru

 var dashboardRoute = new DashboardRoute(
      ObjectFactory.GetInstance<PathResolver>(), 
      ObjectFactory.GetInstance<VirtualPathResolver>(), 
      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 
     ); 

kiedy dodać obie trasy, korzystając context.Routes.Add/MapRoute ostatnia trasa jest nie działa, ale kiedy używam context.MapRoute na ostatniej trasie działa, ale GetVirtualPath na mojej niestandardowej trasie nie jest używany dla actionlinks. Myślałem, że MapRoute to tylko rozszerzenie kontekstu.Routes.Add? Jaki jest najlepszy sposób debugowania tras? Użyłem debugowania trasy Phil Haacks, ale nie działa z moją niestandardową trasą, czy istnieje inny sposób debugowania tras?

Naprawdę potrzebuję pomocy. Moje Zgłoszenia trasa w mojej okolicy deski rozdzielczej wygląda następująco -

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

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

PageRoute jest zwyczaj droga i można znaleźć kod tutaj http://bit.ly/er6HPn z tym tras aktywny link jak to działa świetnie Html.ActionLink ("Zarządzanie Role "," managerole "," konto "), ale gdy mam link, który powinien działać z moją niestandardową trasą, taką jak Html.ActionLink (page.MetaData.Name," edit "," pages ", new {document = page} , null) wynikiem jest http://stormbreaker.local/dashboard/pages/edit?document=Stormbreaker.Example.Models.Page, co oznacza, że ​​GetVirtualPath w mojej PageRoute nigdy nie jest używany. Czy ktoś może mi wytłumaczyć sposób i jak to naprawić?

Odpowiedz

7

rozwiązać go, Jeśli zarejestrujesz zwyczaj RouteBase instancji w przedmiocie RouteCollection, IRouteWithArea interfejs pozwala skojarzyć, że instancja RouteBase o powierzchni

+0

To właśnie rozwiązany problem miałem - Dzięki! – RPM1984

Powiązane problemy