ASP.NET 4 Routing

Eroli

Erfahrenes Mitglied
Hallo zusammen,

ich möchte gerne eine Route zu einer Seite registrieren. Dazu habe ich folgenden Code in der global.asax:

C#:
    void Application_Start(object sender, EventArgs e) 
    {
        // Code, der beim Starten der Anwendung ausgeführt wird.
        RegisterRoutes(RouteTable.Routes);
    }

    private static void RegisterRoutes(RouteCollection routes)
    {
        routes.MapPageRoute("ViewContent", "mysite/Articles/{Language}/{ID}/Index.aspx", "~/mysite/ViewContent.aspx");
    }

Allerdings greift die Route nicht, wenn ich nun auf die URL
surfe....

Wenn ich die Route allerdings so erstelle:
C#:
    void Application_Start(object sender, EventArgs e) 
    {
        // Code, der beim Starten der Anwendung ausgeführt wird.
        RegisterRoutes(RouteTable.Routes);
    }

    private static void RegisterRoutes(RouteCollection routes)
    {
        routes.MapPageRoute("ViewContent", "Articles/{Language}/{ID}/Index.aspx", "~/mysite/ViewContent.aspx?ID={ID}&Language={Language}");
    }

Dann bekomme ich beim surfen auf:

folgenden Fehler:
Die Routen-URL darf nicht mit dem Zeichen "/" oder "~" beginnen und darf kein Fragezeichen (?) enthalten.
Parametername: routeUrl
Beschreibung: Unbehandelte Ausnahme beim Ausführen der aktuellen Webanforderung. Überprüfen Sie die Stapelüberwachung, um weitere Informationen über diesen Fehler anzuzeigen und festzustellen, wo der Fehler im Code verursacht wurde.

Ausnahmedetails: System.ArgumentException: Die Routen-URL darf nicht mit dem Zeichen "/" oder "~" beginnen und darf kein Fragezeichen (?) enthalten.
Parametername: routeUrl

Aber das ist doch komisch. Die RouteURL, also "Articles/{Language}/{ID}/Index.aspx", beginnt weder mit "/", noch "~" noch beinhaltet sie ein "?"...

Und warum wird die Route überhaupt nicht benutzt, wenn ich den QueryString im dritten parameter weglasse?

Kann da jemand etwas Klarheit in die Sache bringen? Dankesehr!
 
Zurück