Question

Je note ce bit intriguant dans ASP.NET MVC:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

J'aimerais mapper {* pathInfo} sur une route.

Quelque chose comme:

routes.MapRoute(
  "area/{*pathInfo}",
   "{controller}/{action}/{id}",parameters
   new { controller = "Area", action = "Index", id = ??? } 
);

mais comment passer dans la variable " foo / bar / rab / oof " de mydomain.com/area/foo/bar/rab/oof? Passer tout le bit sous forme de chaîne ou de collection me conviendrait parfaitement.

Merci!

Était-ce utile?

La solution

Quelle version de MVC utilisez-vous? Le nom de la route devrait être le premier paramètre de MapRoute (), comme je me souviens dans MCV Beta. Quoi qu'il en soit, étant donné votre objectif de capturer le chemin, je voudrais faire comme:

routes.MapRoute("AreaRoute", "Area/{*values}", new {controller = "Area", action = "Index"}       );

Et dans le contrôleur de zone:

// "value" argument is the string after Area/, i.e. "foo/bar/rab/oof" in your example
public string Index(string values)  
{  
  ...
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top