Cuando se agrega el siguiente mapeo:
routes.MapRoute("hierarchy", "{action}/{*url}"
new { controller = "Home", action = "Index" });
se puede obtener la cadena 'url' en su método de acción:
public ActionResult myAction(string url)
{
...
}
continuación, se obtiene fácilmente la jerarquía:
string[] hierarchy = url.Split('/');
Crear una url a partir de una lista de valores de cadena se puede hacer utilizando un enfoque similar:
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 continuación, se puede utilizar en un enlace de acción, por ejemplo:
<%= Html.ActionLink("Text", new { Controller="Home", Action="Index", Url=urlBuilder.ToString() }) %>
No lo he comprobado todavía, pero parece que funciona. ¿Qué pasa con la representación de un enlace de ruta? Me gustaría pasar una matriz como datos de ruta. ¿Algunas ideas? – Sonia
He agregado un enfoque a la publicación. – Jeroen
¡Funciona a la perfección! Es una cuestión de estilo, pero en lugar de utilizar la escritura de urlBuilder, utilicé string.Join ("/", strArray). Gracias – Sonia