2009-09-18 9 views
2

Ma première route:MVC Catch Tous les parcours ne fonctionne pas

// Should work for /Admin, /Admin/Index, /Admin/listArticles 
    routes.MapRoute(
     "Admin",            // Route name 
     "Admin/{action}",       // URL with parameters 
     new { controller = "Admin", action = "Index" } // Parameter defaults 
); 

ne résout pas la route (je l'utilise Phil Haack's Route Debugger) et même la dernière route, "Catch All" itinéraire ne fonctionne pas:

//Maps any completely invalid routes to ErrorController.NotFound 
    routes.MapRoute("Catch All", "{*path}", 
     new { controller = "Error", action = "NotFound" } 
); 

Si je vais à /Admin/listArticles cela fonctionne mais /Admin me donne Error 403.15 "The Web server is configured to not list the contents of this directory." Cela me pointe à l'idée qu'aucun routage n'est utilisé car il cherche un fichier physique dans un répertoire? Ceci est un problème de routage bas niveau simple mais je n'arrive pas à le faire fonctionner et tout le monde me donne des liens à lire (oui, je sais que MSDN est là) mais pas de vraies réponses. J'ai fait des recherches sur les itinéraires et j'ai essayé, mais je publie cela parce que je ne peux pas le faire fonctionner, aucune aide, des réponses?

+0

Possible copie de [.Net MVC Routing Catchall ne fonctionne pas] (http://stackoverflow.com/questions/318886/net-mvc-routing-catchall-not-working) – jgauffin

Répondre

1

Le problème est peut-être que vous avez ajouté cette route sous la route par défaut, toutes les routes personnalisées doivent être ajoutées au-dessus de la route par défaut.

Merci,
Mahesh Velaga.

0

Utilisez-vous IIS 6.0? Dans ce cas, il faudra ressembler ...

// Should work for /Admin, /Admin/Index, /Admin/listArticles 
    routes.MapRoute(
     "Admin",            // Route name 
     "Admin.mvc/{action}",       // URL with parameters 
     new { controller = "Admin", action = "Index" } // Parameter defaults 
); 

où vous devez set mvc as an application extension

1

La réponse à ma question était que j'avais un itinéraire appelé/admin et j'ai écrit mon journal d'erreurs à un directory/Admin/Error Il semble qu'il n'y ait pas de surcharge pour spécifier si l'itinéraire doit être résolu ou s'il fait partie d'un répertoire physique.

Questions connexes