This article is currently in the process of being translated into German (~69% done).
Einleitung
Routing in MVC ist das Konzept, eine URL, die der Endbenutzer über seinen Browser anfordert, einer Methode in einem Ihrer Controller zuzuordnen, die dann eine Antwort an den Browser zurücksendet. Die Antwort ist häufig eine Ansicht, es kann sich aber auch um einen einfachen Text, eine Umleitung oder eine Reihe anderer Optionen handeln.
Standardrouting
If you're working on a brand new project, created from the Empty template in Visual Studio, then your application doesn't have any routing yet. We talked a bit about routing in the article about adding a Controller to the project, but if you haven't followed this tutorial from the start, we need to check up on this. Try opening your Startup.cs file, which should have been added to your project when you created it - if there's nothing about routing, you need to add it manually. The easiest way is to use the two helper methods called UseRouting() and MapDefaultControllerRoute() - it adds a default (fallback) route to your project, which will try to map URL's to methods on one of your controllers. If no Controller name is specified, the URL will be mapped to the HomeController.
So sollte es in Ihrer Startup.cs-Datei aussehen:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if(env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapDefaultControllerRoute();
});
}
Dank dieser Methoden unterstützt Ihre Applikation jetzt das Standardrouting. Hier sind ein paar Beispiele von URL's und den zugeordneten Controller/Methoden-Kombinationen:
http://localhost/ -> HomeController.Index()
http://localhost/Home/Index -> HomeController.Index()
http://localhost/Test/ -> HomeController.Test()
http://localhost/Home/Something -> HomeController.Something()
Es wirkt sich jedoch nicht nur auf den HomeController aus, sondern bietet auch allgemeine Unterstützung für den Zugriff auf eine Methode auf einem Controller, ohne dass spezielle Routen dafür erstellt werden müssen. Wenn Sie also einen Controller mit dem Namen UserController haben, der über eine Methode mit dem Namen Details() verfügt, können Sie unter der folgenden URL darauf zugreifen: /User/Details
Mit anderen Worten, die Standardroute fungiert als eine Art "Sammelregel", die es Ihnen erleichtert, einige grundlegende Seiten zum Laufen zu bringen. Dies funktioniert natürlich nur bei Ihnen, wenn Ihr gesamter Inhalt dem gleichen Muster folgt: /[Name des Controllers]/[Name der Methode]
Sobald Sie davon abweichen, z.B.: Da der spezifische Name Ihres Controllers nicht in der URL angezeigt werden soll, müssen Sie Ihre eigenen Regeln hinzufügen. Keine Sorge - Sie können sich weiterhin auf das Standardrouting verlassen, indem Sie einfach Ihre eigenen Regeln hinzufügen, bevor das Standardrouting angewendet wird. Dazu später mehr.
Zusammenfassung
Routing ist der Prozess des Zuordnens von URLs, das bedeutet wie ein Benutzer auf eine bestimmte Seite oder Funktionalität in Ihrer Anwendung zugreift, an den Controller und die Methode auf diesem Controller, die für das Erstellen der Antwort auf die URL verantwortlich sein soll. Dank des Standardroutings können Sie, wie wir in diesem Artikel gesehen haben, die grundlegendsten Routing-Funktionen sehr einfach erhalten. In komplexeren Situationen müssen Sie jedoch Ihre eigenen Routen erstellen. Keine Sorge, darüber werden wir in den nächsten Artikeln noch viel mehr sprechen.