2010-11-13 14 views
0

Je suis en train de définir une configuration d'itinéraire qui permettra une « région » en option dans les URL suivantes, tous qui par défaut à la page d'accueil:Comment réparer cette configuration de route? itinéraire Configuré retourne 404

/uk/home // where the 'uk' parameter can be either 'uk' or 'us' 
/uk  // where the 'uk' parameter can be either 'uk' or 'us' 
/  // in this case, I just want the region to default to 'uk' 

Les résultats que je suis Obtenir ne sont pas idéales cependant. le premier (/uk/home), et le troisième (/) travaillent tous les deux, mais le second (/uk), retourne 404.

Les configurations sont définies comme:

 routes.MapRoute(
      null, 
      "{region}/{controller}", 
      new { region = "^UK|US$" }, 
      new { controller = "Home", action = "Index" } 
      ); 

     routes.MapRoute(
      null, 
      "{region}", 
      new { region = "^UK|US$" }, 
      new { controller = "Home", action = "Index" } 
      ); 

     routes.MapRoute(
      null, 
      //"{region}", 
      "", 
      new {region = "UK", controller = "Home", action = "Index" } 
      ); 

Que dois-je faire pour s'assurer que tous les 3 URLs par défaut à la page d'accueil, avec l'URL vide par défaut la région de «UK»?

Répondre

1

Essayez les routes suivantes:

routes.MapRoute(
    "Region", 
    "{region}/{controller}", 
    new { controller = "Home", action = "Index" }, 
    new { region = "^UK|US$" } 
); 

routes.MapRoute(
    "Default", 
    "", 
    new { controller = "Home", action = "Index", region = "UK" } 
);