24 February 2010 ASP.NET MVC, HowTo, MVC, Routing Robert Muehsig

imageWer in einer ASP.NET MVC Anwendung ALLE Requests zu einem Controller umgeleitet haben möchte, kann dies sehr einfach über das Routing einstellen.

 

ALLE Requests umleiten

Mit dem kleinen Trick ist es möglich, alle Requests zu einem Controller umzuleiten. Das kann zum Beispiel nützlich sein, wenn man sich selber um das Ausliefern einer "404-Fehler-Seite" kümmern möchte oder einfach z.B. weil gerade Wartungsarbeiten durchgeführt werden, alle Requests hart auf einen Controller umbiegen möchte.

            routes.MapRoute(
                "CatchAll",  
                "{*url}",               
                new { controller = "Home", action = "Index", id = "" } 
            );

In Zeile 3 steckt die Magie. Natürlich müsste diese Route als erstes registriert werden, wenn wirklich alle Requests abgefangen werden sollen. Wenn andere Routen "über" dieser liegen, funktioniert das natürlich nur für Requests wo die anderen Routen nicht matchen.

Andere Möglichkeiten gibt es natürlich auch, aber ich fand das heute ganz interessant :)

[ Download Democode ]


Written by Robert Muehsig

Software Developer - from Saxony, Germany - working on primedocs.io. Microsoft MVP & Web Geek.
Other Projects: KnowYourStack.com | ExpensiveMeeting | EinKofferVollerReisen.de