Frage

In einem aktuellen Projekt habe ich mein eigenes MVC-Framework in PHP erstellt.Eines der Dinge, die ich implementiert habe, war ein Routing-System.Ich habe Apaches mod_rewrite verwendet, um alle Anfragen an index.php zu senden, und dann den URI analysiert, um Informationen zu extrahieren und die Anfrage weiterzuleiten.

Ich beschäftige mich gerade mit ASP.NET und frage mich, ob/wie ich etwas Ähnliches durchführen könnte.Gibt es eine Möglichkeit, alle Anfragen (ähnlich wie WordPress) an eine Seite weiterzuleiten, auf der die zentrale Routenverarbeitung durchgeführt wird?Ich kenne das MVC-Framework für ASP.NET, würde es aber gerne selbst ausprobieren, während ich herumbastele und lerne.

BEARBEITEN:Übrigens läuft bei meinem Hosting-Provider IIS 6

War es hilfreich?

Lösung

Dies wird eine lange Antwort sein, denn ich möchte sicherstellen, dass Sie sich über alle Möglichkeiten im Klaren sind, wie Sie das erreichen können, was Sie tun möchten.

Die Routing-Engine, die das ASP.NET MVC Framework antreibt, funktioniert mit dem herkömmlichen ASP.NET Framework.Sie können die Vorteile der RouteTable nutzen und Routen zuweisen, genau wie Sie es in einer ASP.NET MVC-Anwendung tun würden.Auf herkömmlichen ASP.NET-Sites ist der MVC-Anteil einfach nicht verfügbar.Das war eine enorme Verbesserung für das ASP.NET Framework und es war großartig zu sehen, wie sie diesen Code wiederverwendeten und ihn in beiden Frameworks zum Laufen brachten.Wenn Sie mehr darüber erfahren möchten, schauen Sie sich ScottGu's an Post und scrollen Sie nach unten zu „URL-Routing-Verbesserungen“.Auch hier ist ein Referenz zur Verwendung von System.Web.Routing in WebForms von Phil Haack.

Nun, wenn Sie immer noch Ihr eigenes schreiben möchten.Sie müssen sich mit der ASP.NET-HTTP-Pipeline und deren Implementierung vertraut machen IHttpModule und das IHttpHandler Schnittstellen, um Ihre eigene HttpModule- oder HttpHandler-Klasse für die Verarbeitung Ihres Routings zu erstellen.Diese Schnittstellen sind der Schlüssel zum Schreiben Ihrer eigenen Routing-Engine.Um diese Schnittstellen in ein funktionierendes Beispiel zu integrieren, kann ich dies nicht empfehlen MSDN-Artikel genug.Es zeigt Ihnen, wie Sie mit beiden Schnittstellen arbeiten und erklärt die Unterschiede beim Erstellen Ihrer eigenen Routing-/URL-Rewriting-Engine.

Wenn Sie nun feststellen, dass dies möglicherweise zu viel für Sie ist.Sie können Bibliotheken von Drittanbietern verwenden, die bereits eine Routing-/URL-Rewriting-Engine in .NET geschrieben haben.Hier ist eine Frage, die ich vor nicht allzu langer Zeit gesehen habe:Welchen URL-Rewriter verwenden Sie für ASP.Net?" genau hier auf SO.

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