Frage

Normalerweise schauen meine URLs wie der Standard: www.example.com/controller/action

Jetzt möchte ich mein Setup Administrationsbereich wie:

 www.example.com/admin/
 www.example.com/admin/user/list
 www.example.com/admin/content/add
etc.

So ist das Format: www.example.com/admin/controller/action

Ich kann nicht scheinen, um herauszufinden, wie die Routen einrichten, so dass es wie die oben aussieht.

War es hilfreich?

Lösung

Sie müssen nur einen neuen Weg mit dem ‚admin‘ Abschnitt am Anfang der Route Definition fest einprogrammiert abzubilden.

Zum Beispiel fügen Sie diese zu Ihren Routen in RegisterRoutes in der Global.asax.cs Datei und stellen Sie sicher, dass es über der Standardroute angezeigt wird (vorausgesetzt, Sie nicht andere Wege hinzugefügt haben):

routes.MapRoute(
    "Default",                                              
    "admin/{controller}/{action}/{id}",                     
    new { controller = "Home", action = "Index", id = "" } 
);

Hinweis: der ‚admin‘ Teil zu Beginn der Routendefinition fest einprogrammiert

.

Hinweis. 2: Wenn Sie andere Routen über den Standard hinzugefügt haben, müssen Sie sicherstellen, dass sie Ihre Routen richtig bestellt

Hier ist ein Link zu einer guten Blog-Post von Scott Guthrie in Bezug auf MVC Routing : URL Routing

Andere Tipps

Kelsey Antwort ist direkt auf der Marke, aber ich wollte etwas zur Diskussion hinzuzufügen. Eine weitere Möglichkeit ist nicht wirklich „admin“ Routen überhaupt haben, sondern Admin authentifizierte Sitzungen erfordern für tatsächlich die eingeschränkten URLs zugreifen.

Dies ist oft, wie die Dinge in „traditionellen“ RESTful Anwendungen fertig sind. Ihre Steuerung die Art der Ressource darstellt Sie manipulieren, die Aktion ist das Verb und die ID ist die eindeutige Kennung für ein bestimmtes Mitglied dieser Ressource.

Mit anderen Worten, statt mit:

/content/list (for normal users)
/admin/content/add (for admins)

Sie müßten

/content/list (for everyone)
/content/add (for admin, but must be authenticated to work)

Hinzufügen / admin / auf die URL nicht wirklich keine benifits hinzufügen (außer vielleicht, dass Sie Ihre Sicherung Logik mit nur einer einzigen Regel gegen alles unter / admin schreiben kann), aber der Nachteil ist, kompliziertere Routen und Brechen Standard RESTful . Standardpraktiken zu brechen ist nicht eine schlechte Sache in sich selbst, aber Sie sollten bedenken, dass sie aus einem Grund sind Standard, und es sei denn, Sie brechen ihnen bestimmte Vorteile haben, könnten Sie ihnen haften.

Es soll, dass Sie den Benutzer zu authentifizieren müssen in beiden URL Arten beachtet werden, sonst jemand könnte es benutzen.

In ASP.NET MVC können Sie den Zugriff auf Aktionen (oder sogar ganze Controller) mit ActionFilters basierend auf Benutzerebene beschränken. Durch die Dekoration der Admin-only Aktionen mit diesen Filtern können Sie nur authentifizierte Benutzer adminstrative gewährleisten sie tatsächlich nutzen können.

Lesen Scott Gu Blogeintrag oder Rob Connery Post für weitere Informationen.

Wie der MVC Version 2 haben sie die ‚Fläche‘ Konzept hinzugefügt, die Sie dies richtig tun können :) Hier ist ScottGu der Post über MVC 2 Preview .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top