2009-08-22 17 views
5

E 'possibile indirizzare un percorso gerarchico per mappare una relazione dal database come segue:Routing un percorso gerarchico da DB con ASP.NET MVC

Diciamo che ho una tupla/entità "pagina" con una mtm relazione ad una "pagina" (se stesso) e voglio essere in grado di combinare la lumaca-valore di ogni pagina per trovare una pagina appropriata, in questo modo:

mydomain.com/firstpage/secondpage/thirdpage

dove firstpage, secondpage e thirdpage sono di tipo "pagina "e la terza pagina fa riferimento alla seconda pagina, ecc.

Come implementare questo con il routing ASP.NET MVC?

risposta

4

Ok, penso di averlo risolto!

Ho scoperto che esiste un * (parametro catch-all) che può essere utilizzato durante il routing.

Ad esempio:

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

Poi nel mio controller posso usare espressioni regolari o una semplice divisione per risolvere ogni parte della lumaca. :)

+0

Sei sicuro di voler fare affidamento sul catch-all? Questo tipo di negazione della possibilità di utilizzare i percorsi, come si finisce per turfing la logica di routing nel controller. –

+0

Hmm, è vero. Tuttavia, se lo metto dopo/sotto la/e mia/e rotta/e predefinita/i, ricadrà su questa solo se nessun'altra rotta soddisfa la richiesta. Ma sono aperto a suggerimenti e discussioni. Hai qualche idea migliore? :) – Mickel

Problemi correlati