ASP.NET MVC - Attraper Toutes Itinéraire Et la Route par Défaut

En essayant de faire ma demande pour produire des erreurs 404 correctement, j'ai mis en œuvre un fourre-tout de l'itinéraire à la fin de ma table de routage, comme indiqué ci-dessous:

 routes.MapRoute(
            "NotFound", _
           "{*url}", _
           New With {.controller = "Error", .action = "PageNotFound"} _
       )

Cependant, pour obtenir ce travail, j'ai dû supprimer la route par défaut:

{controller}/action/{id}

Mais maintenant que le défaut a été supprimé, l'essentiel de mon action liens ne fonctionnent plus, et le seul moyen que j'ai trouvé pour obtenir leur travail est d'ajouter des itinéraires individuels pour chaque contrôleur/action.

Est-il un moyen plus simple de le faire, plutôt que d'ajouter une route pour chaque contrôleur/action?

Est-il possible de créer une route par défaut qui permet encore à la capture de tous les parcours de travailler si l'utilisateur tente d'accéder à une route inconnue?

  • Pourquoi pensez-vous 404 ne fonctionnait pas correctement?
  • J'ai eu la même plainte que @Sean. ASP.NET renvoie une 404, mais fait ensuite une redirection 302, alors le résultat-il pas un réel 404 sur la page en question. C'est lors de l'utilisation de customErrors.
  • Oui, c'est le même problème que j'ai trouvé, je ne pense pas que c'est SEO friendly
  • Dans MVC, l'url ne sont pas toujours liés à un fichier. C'est à dire: domain.com/path/to/destination n'est pas un fichier de structure. Par conséquent, une erreur 404 ne devrait pas être envoyé, car il n'est pas à la recherche d'un fichier.
  • IMO, si je vais à domain.com/nopage où nopage n'est pas valide d'un contrôleur, il doit y avoir une erreur 404.
  • tout à fait d'accord, 404 = Pas trouvé, peu importe que ce soit un fichier physique ou pas
  • 404 est un FICHIER non trouvé erreur
  • HTTP 404 - "La ressource demandée n'a pas pu être trouvé." HTTP / REST est tout au sujet des ressources, et pose la question de ce qu'est un 'fichier'?

InformationsquelleAutor Sean Taylor | 2010-10-22