2009-08-22 15 views
5

Czy możliwe trasy hierarchiczna droga do mapowania relacji z bazy danych w następujący sposób:Routing jest hierarchiczną ścieżkę z DB z ASP.NET MVC

Powiedzmy mam „stronę” krotka/podmiotowi MTM relacja na „stronie” (sobie) i chcę, aby być w stanie połączyć ślimak wartość każdej strony, aby znaleźć odpowiednią stronę, tak jak poniżej:

mydomain.com/firstpage/secondpage/thirdpage

gdzie firstpage, secondpage i thirdpage są typu "strona "i trzecia strona odwołuje się do drugiej strony itd.

Jak zaimplementowałbyś to z routingiem ASP.NET MVC?

Odpowiedz

4

OK, myślę, że to rozwiązałem!

Okazało się, że istnieje parametr * (catch-all), który może być użyty podczas routingu.

Na przykład:

routes.MapRoute(
    "Pages", 
    "{*pageQuery}", 
    new { controller = "Page", action = "GetPage" } 
); 

Wtedy w moim kontrolera mogę używać wyrażeń regularnych lub prosty podział rozwiązać każdą część ślimaka. :)

+0

Czy na pewno chcesz polegać na catch-all? Ten rodzaj neguje możliwość korzystania z tras, ponieważ kończysz przekazywanie logiki routingu do kontrolera. –

+0

Hmm, to prawda. Jeśli jednak umieścisz to po/pod moją domyślną trasą (trasami domyślnymi), będzie to tylko ta opcja, jeśli żadna inna trasa nie spełni żądania. Ale jestem otwarty na sugestie i dyskusję. Czy masz jakieś lepsze pomysły? :) – Mickel