2010-10-14 6 views
0

J'ai une routeroutage dans asp.net mvc

routes.MapRoute(
    "BuildingProject", 
    "BuildingProject/{action}/{id}", 
    new { 
    controller = "Home", 
    action = "Index", 
    id = "" 
}); 

je veux qu'il se comporte comme route par défaut par exemple pour url qui commence par BuildingProject comme http://localhost:4030/BuildingProject/DeleteAll. J'ai essayé

routes.MapRoute(
    "BuildingProject", 
    "BuildingProject/{action}/{id}", 
    new { 
    controller = "Home", 
    action = "", 
    id = "" 
}); 

Il worked.But sur la saisie localhost: 4030/BuildingProject il ne réoriente à son indice mais affiche l'erreur.
.Comment faire cela.

Répondre

0

Essayez ceci:

routes.MapRoute("BuildingProject", "BuildingProject/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional }); 
+0

sorru mais cela n'a pas fonctionné. –

+0

Voulez-vous que toutes les URL pointent vers la même action? Ensuite, vous pouvez essayer ce code: routes.MapRoute (null, "BuildingProject/{* catchall}", nouveau {controller = "Accueil", action = "Index"}); –

1

Si vos itinéraires ressemblent à ceci:

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

    routes.MapRoute(
     "BuildingProject", 
     "BuildingProject/{action}/{id}", 
     new 
     { 
      controller = "Home", 
      action = "Index", 
      id = UrlParameter.Optional 
     } 
    ); 
} 

alors http://localhost:4030/BuildingProject/DeleteAll appellera l'action DeleteAll sur le contrôleur Home et si vous naviguez vers http://localhost:4030/BuildingProject, l'action Index sera invoqué sur le même contrôleur.