Lorsque vous ajoutez le mappage suivant:
routes.MapRoute("hierarchy", "{action}/{*url}"
new { controller = "Home", action = "Index" });
vous pouvez obtenir la chaîne 'url' dans votre méthode d'action:
public ActionResult myAction(string url)
{
...
}
La hiérarchie est alors facilement obtenu:
string[] hierarchy = url.Split('/');
La création d'une URL à partir d'une liste de valeurs de chaîne peut être effectuée à l'aide d'une approche similaire:
string firstPart = hierarchy.Count() > 0: hierarchy[0] : string.Empty;
StringBuilder urlBuilder = new StringBuilder(firstPart);
for (int index = 1; index < hierarchy.Count(); index++)
{
urlBuilder.Append("/");
urlBuilder.Append(hierarchy[index]);
}
urlBuilder peut alors être utilisé dans un lien d'action, par exemple:
<%= Html.ActionLink("Text", new { Controller="Home", Action="Index", Url=urlBuilder.ToString() }) %>
Je n'ai pas encore vérifié mais cela semble fonctionner. Qu'en est-il du rendu d'un lien d'itinéraire? Je voudrais passer un tableau en tant que données de route. Des idées? – Sonia
J'ai ajouté une approche à la publication. – Jeroen
Fonctionne parfaitement! C'est une question de style mais au lieu d'utiliser l'écriture urlBuilder, j'ai utilisé string.Join ("/", strArray). Merci – Sonia