webForumDet fria alternativet

Routing med flera nivår i MVC - Hur lösa på bästa sätt?

.NET

1 svar · 429 visningar · startad av lilja

Medlem sedan juli 20041 183 inlägg
Frågan#1

Jag sitter med en applikation som har flera olika nivåer och funderar på hur jag bäst löser routingen. Gör man inga ändringar är ju routingen:

routes.MapRoute(
    "Default", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);

Jag tycker det vore snyggt om man kunde ta med överliggande struktur i URLen utan att det blir för krångligt att underhålla. Jag skulle alltså vilja ha en adress som ser ut så här:

/Namn på översta nivån/id/Namn på nästa nivå/id/Namn på tredje nivån/id/

Varje nivå har en egen kontroller och eftersom namnet inte är unikt måste jag ha med IDt på objektet i den nivån. Om jag har länken ovan är det tredje Controlern som körs.

Detta är inget problem men det blir många olika routes då jag får skapa en ny rout för varje nivå och det känns som om jag tänker fel. Jag har inte heller namnet på Controlern i min URL. Tänker jag fel eller finns det något smart sätt att lösa detta på?

Jag vill göra detta så att länkarna för användarna blir mer informationsrika än om man bara tar med namnet på Controlen och dess Action.

Medlem sedan juli 2003555 inlägg
#2

Regular expressions :) Kolla på google, finns lite folk som skrivit egna route-klasser som stödjer regexp

260 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)