Redirection des utilisateurs vers une page 404
personnalisée dans ASP.NET MVC
Dans le monde des applications web, maintenir une expérience utilisateur sans faille est essentiel. Imaginez un utilisateur qui tape soigneusement une URL, seulement pour être confronté à une page d’erreur frustrante en raison d’une route inexistante. Cela peut laisser les utilisateurs confus et déçus. Heureusement, en tant que développeurs, nous avons la capacité d’améliorer nos applications en gérant ces scénarios de manière élégante.
Dans cet article de blog, nous allons explorer comment rediriger les utilisateurs vers une page d’erreur 404
personnalisée dans ASP.NET MVC lorsqu’ils tentent d’accéder à un contrôleur inexistant.
Comprendre le problème
Lorsque qu’un utilisateur essaie de visiter une URL qui ne correspond à aucun contrôleur ou action dans votre application ASP.NET MVC, une exception est levée. Par exemple, si quelqu’un tente de naviguer vers :
http://www.nosite.com/paeges/1
Cette URL est incorrecte et devrait être résolue vers le contrôleur /pages/
. Au lieu de mener l’utilisateur à un message d’erreur générique, nous voulons le rediriger vers une page 404
personnalisée amicale et informative.
Aperçu de la solution
Pour atteindre cet objectif, nous devons configurer notre application ASP.NET MVC pour gérer les exceptions de routage en redirigeant vers une page 404
spécifiée. Voici un aperçu étape par étape de la façon de procéder.
Étape 1 : Définir votre page d’erreur personnalisée
Avant de nous plonger dans la configuration de routage, la première étape est de créer une page 404
personnalisée. Cela pourrait être une simple vue qui informe l’utilisateur de l’erreur et suggère éventuellement des liens utiles.
- Créer une vue : Dans votre répertoire
/Views/Shared/
, ajoutez une nouvelle vue appeléeError404.cshtml
. - Concevoir le contenu : Assurez-vous que le contenu est convivial. Par exemple :
<h1>Oups ! Page non trouvée</h1> <p>Désolé, la page que vous recherchez n'existe pas. Veuillez vérifier l'URL ou revenir à la page d'accueil.</p>
Étape 2 : Mettre à jour le Web.Config pour les erreurs personnalisées
Ensuite, vous devez informer votre application ASP.NET MVC d’afficher la page d’erreur personnalisée lorsque le code d’état HTTP spécifié se produit. Ouvrez votre fichier Web.config
et ajoutez les lignes suivantes :
<system.web>
<customErrors mode="On" defaultRedirect="~/Error404">
<error statusCode="404" redirect="~/Error404" />
</customErrors>
</system.web>
- mode : Définissez cela sur
On
pour activer les pages d’erreur personnalisées. - defaultRedirect : Il s’agit du chemin vers votre page d’erreur personnalisée.
- error : Cela spécifie que lorsqu’une erreur
404
se produit, l’application doit rediriger vers la page spécifiée.
Étape 3 : Gérer les routes dans le fichier Global.asax
Ensuite, vous devez vous assurer que les problèmes de routage sont capturés. Ouvrez votre fichier Global.asax
et ajoutez la méthode suivante :
protected void Application_Error()
{
Exception exception = Server.GetLastError();
HttpException httpException = exception as HttpException;
if (httpException != null)
{
int httpCode = httpException.GetHttpCode();
if (httpCode == 404) // Non trouvé
{
Response.Clear();
Server.ClearError();
Response.Redirect("~/Error404");
}
}
}
- Application_Error() : Cette méthode s’exécute chaque fois qu’une erreur non gérée se produit dans votre application.
- Capturer l’exception : Le code capture l’exception et vérifie si le code d’état HTTP est
404
. - Redirection : Si c’est le cas, effacez l’erreur et redirigez l’utilisateur vers votre page
404
personnalisée.
Conclusion
En suivant ces étapes, vous pouvez vous assurer que les utilisateurs naviguant vers des pages inexistantes sont accueillis par une page d’erreur 404
amicale au lieu d’une erreur d’exception générique. Cela améliore non seulement l’expérience utilisateur, mais maintient également un niveau de professionnalisme dans votre application ASP.NET MVC.
Au fur et à mesure que vous continuez à construire et à améliorer vos applications web, rappelez-vous que la manière dont vous gérez les erreurs en dit long sur votre souci du détail et votre engagement envers la satisfaction des utilisateurs. Prenez le temps de mettre en œuvre ces simples changements et constatez l’impact positif sur l’usabilité de votre application web.
Avec ces étapes simples, vous pouvez améliorer la façon dont votre application ASP.NET MVC gère les erreurs de routage. Bon codage !