Umleitung von Benutzern zu einer benutzerdefinierten 404-Seite in ASP.NET MVC

In der Welt der Webanwendungen ist es entscheidend, ein nahtloses Benutzererlebnis aufrechtzuerhalten. Stellen Sie sich vor, ein Benutzer gibt sorgfältig eine URL ein, nur um mit einer frustrierenden Fehlerseite aufgrund einer nicht vorhandenen Route konfrontiert zu werden. Dies kann dazu führen, dass sich Benutzer verwirrt und enttäuscht fühlen. Glücklicherweise haben wir als Entwickler die Möglichkeit, unsere Anwendungen zu verbessern, indem wir solche Szenarien elegant handhaben.

In diesem Blogbeitrag werden wir untersuchen, wie wir Benutzer zu einer benutzerdefinierten 404-Fehlerseite in ASP.NET MVC umleiten, wenn sie versuchen, auf einen nicht vorhandenen Controller zuzugreifen.

Verständnis des Problems

Wenn ein Benutzer versucht, eine URL zu besuchen, die keinem Controller oder einer Aktion in Ihrer ASP.NET MVC-Anwendung entspricht, wird eine Ausnahme ausgelöst. Zum Beispiel, wenn jemand versucht, auf Folgendes zuzugreifen:

http://www.nosite.com/paeges/1

Diese URL ist falsch und sollte auf den /pages/-Controller verwiesen werden. Anstatt den Benutzer zu einer allgemeinen Fehlermeldung zu führen, wollen wir ihn zu einer freundlichen und informativen benutzerdefinierten 404-Seite umleiten.

Überblick über die Lösung

Um dieses Ziel zu erreichen, müssen wir unsere ASP.NET MVC-Anwendung so konfigurieren, dass sie Routing-Ausnahmen behandelt, indem sie auf eine festgelegte 404-Seite umleitet. Hier ist eine schrittweise Aufschlüsselung, wie man das macht.

Schritt 1: Definieren Sie Ihre benutzerdefinierte Fehlerseite

Bevor wir mit der Routing-Konfiguration beginnen, ist der erste Schritt, eine benutzerdefinierte 404-Seite zu erstellen. Dies könnte eine einfache Ansicht sein, die den Benutzer über den Fehler informiert und möglicherweise nützliche Links vorschlägt.

  • Erstellen Sie eine Ansicht: Fügen Sie in Ihrem Verzeichnis /Views/Shared/ eine neue Ansicht mit dem Namen Error404.cshtml hinzu.
  • Gestalten Sie den Inhalt: Stellen Sie sicher, dass der Inhalt benutzerfreundlich ist. Beispielsweise:
    <h1>Ups! Seite nicht gefunden</h1>
    <p>Entschuldigung, die von Ihnen gesuchte Seite existiert nicht. Bitte überprüfen Sie die URL oder gehen Sie zurück zur Startseite.</p>
    

Schritt 2: Aktualisieren Sie die Web.Config für benutzerdefinierte Fehler

Als nächstes müssen Sie Ihrer ASP.NET MVC-Anwendung mitteilen, dass sie die benutzerdefinierte Fehlerseite anzeigen soll, wenn der angegebene HTTP-Statuscode auftritt. Öffnen Sie Ihre Web.config-Datei und fügen Sie die folgenden Zeilen hinzu:

<system.web>
  <customErrors mode="On" defaultRedirect="~/Error404">
    <error statusCode="404" redirect="~/Error404" />
  </customErrors>
</system.web>
  • mode: Stellen Sie dies auf On, um benutzerdefinierte Fehlerseiten zu aktivieren.
  • defaultRedirect: Dies ist der Pfad zu Ihrer benutzerdefinierten Fehlerseite.
  • error: Dies legt fest, dass die Anwendung bei einem 404-Fehler zur angegebenen Seite umgeleitet werden soll.

Schritt 3: Handling von Routen in der Global.asax-Datei

Als nächstes möchten Sie sicherstellen, dass Routing-Probleme erfasst werden. Öffnen Sie Ihre Global.asax-Datei und fügen Sie die folgende Methode hinzu:

protected void Application_Error()
{
    Exception exception = Server.GetLastError();
    HttpException httpException = exception as HttpException;

    if (httpException != null)
    {
        int httpCode = httpException.GetHttpCode();
        if (httpCode == 404) // Nicht gefunden
        {
            Response.Clear();
            Server.ClearError();
            Response.Redirect("~/Error404");
        }
    }
}
  • Application_Error(): Diese Methode wird jedes Mal ausgeführt, wenn ein nicht behandelter Fehler in Ihrer Anwendung auftritt.
  • Erfassen Sie die Ausnahme: Der Code erfasst die Ausnahme und überprüft, ob der HTTP-Statuscode 404 ist.
  • Umleitung: Wenn dies der Fall ist, löschen Sie den Fehler und leiten Sie den Benutzer zu Ihrer benutzerdefinierten 404-Seite weiter.

Fazit

Durch das Befolgen dieser Schritte können Sie sicherstellen, dass Benutzer, die zu nicht vorhandenen Seiten navigieren, mit einer freundlichen 404-Fehlerseite und nicht mit einer allgemeinen Ausnahmefehlerseite begrüßt werden. Dies verbessert nicht nur die Benutzererfahrung, sondern bewahrt auch ein gewisses Maß an Professionalität in Ihrer ASP.NET MVC-Anwendung.

Während Sie weiterhin Ihre Webanwendungen erstellen und verbessern, denken Sie daran, dass die Art und Weise, wie Sie Fehler behandeln, viel über Ihre Detailgenauigkeit und Ihr Engagement für die Benutzerzufriedenheit aussagt. Nehmen Sie sich die Zeit, diese einfachen Änderungen umzusetzen, und sehen Sie den positiven Einfluss auf die Benutzerfreundlichkeit Ihrer Webanwendung.


Mit diesen einfachen Schritten können Sie die Art und Weise verbessern, wie Ihre ASP.NET MVC-Anwendung Routing-Fehler behandelt. Viel Spaß beim Coden!