Je joue avec ASP.Net MVC depuis un moment. J'ai trouvé que la chose la plus difficile à faire est la table de routage.Stratégie de routage ASP.Net MVC
J'ai trouvé que la plupart des exemples laissaient la route par défaut en place. J'ai trouvé que cela conduit à beaucoup d'erreurs où la route par défaut redirige vers HomeController avec une action qui n'existe pas. Je suis par la suite arrivé à une configuration de routage où je définis explicitement toutes les combinaisons contrôleur/action que je veux autoriser avec un fourre-tout à la fin pour rediriger vers un message d'erreur étrange. une page 404 qui montre un message d'erreur sensible.
Ai-je raté quelque chose ici? Ou est-ce vraiment un bon moyen de faire les choses? En regardant les réponses, je pense que je ferais mieux de clarifier la question un peu. J'essaie d'infaillible le schéma de routage du site Web que je construis. J'ai remarqué que quand je pars dans la route par défaut {controller}/{action}/{id} toutes sortes d'URL où je voudrais afficher une erreur 404 effectivement être acheminé au HomeController avec une action invalide et entraîner une erreur laide message à la place.
Je suis un peu confus parce que la plupart des exemples de code restent dans la route par défaut. Y at-il une raison pour laquelle il est là ou est-ce correct de l'enlever?
Le schéma J'utilise semble maintenant un peu comme ce
routes.MapRoute("About", "About", new {controller = "Page", action = "About"});
routes.MapRoute("SignIn", "SignIn", new {controller = "Page", action = "SignIn"});
routes.MapRoute("SignOut", "SignOut", new {controller = "Page", action = "SignOut"});
routes.MapRoute("Authenticate", "Authenticate", new { controller = "Authentication", action = "Authenticate" });
routes.MapRoute("CatchAll", "{*url}", new { controller = "Error", action = "Http404" });
J'ai une route spécifiée pour chaque action dans le système. Et un catchall pour afficher un 404 à la fin. Est-ce un bon moyen de le faire ou existe-t-il un moyen plus simple de rendre le système de routage infaillible?
Je suis dans le même bateau. Je pensais que le crochet tout fonctionnerait si la route par défaut ne pouvait pas trouver un contrôleur + action. Au lieu de cela, la fabrique de contrôleurs émet une exception. Êtes-vous toujours en route explicite? – dotjoe