En ASP.NET MVC, intento crear un enlace que incluya una etiqueta de anclaje (es decir, dirigir al usuario a una página y una sección específica de la página).Incluyendo una etiqueta de anclaje en ASP.NET MVC Html.ActionLink
La URL que estoy tratando de crear debe ser similar al siguiente:
<a href="/category/subcategory/1#section12">Title for a section on the page</a>
Mi enrutamiento está configurado con la norma:
routes.MapRoute("Default", "{controller}/{action}/{categoryid}");
La sintaxis de enlace de acción que estoy usando es:
<%foreach (Category parent in ViewData.Model) { %>
<h3><%=parent.Name %></h3>
<ul>
<%foreach (Category child in parent.SubCategories) { %>
<li><%=Html.ActionLink<CategoryController>(x => x.Subcategory(parent.ID), child.Name) %></li>
<%} %>
</ul>
<%} %>
Mi método controlador es el siguiente:
public ActionResult Subcategory(int categoryID)
{
//return itemList
return View(itemList);
}
El anterior devuelve correctamente una dirección URL de la siguiente manera:
<a href="/category/subcategory/1">Title for a section on the page</a>
no puedo encontrar la manera de añadir los # SECCIÓN 12 parte. La palabra "sección" es solo la convención que estoy usando para dividir las secciones de la página, y la 12 es la ID de la subcategoría, es decir, child.ID.
¿Cómo puedo hacer esto?
realmente debe utilizar las sobrecargas de ActionLink como se describe por @Brad Wilson. – mattruma
@mattruma lo siento, no estoy de acuerdo. BESO. ¿Por qué tener un miembro lleno de parámetros, algunos de los cuales se dejan como nulos, cuando puede simplemente indicarlo explícitamente? Cualquiera puede ver lo que significa lo anterior por lo que la respuesta de Brad es intrincada y requiere que entres en intellisense. Demasiados parámetros es un patrón anti reconocido. Http://c2.com/cgi/wiki? TooManyParameters –
Estoy de acuerdo. Ambos métodos funcionan, pero dado que la forma en que se especifican los fragmentos en las URL no va a cambiar en el futuro cercano, creo que de esta manera es más legible y claro en su intento. Si es necesario, puede extender el objeto 'Url' o' Html' con un método personalizado que incluya una forma simple de agregar una cadena de fragmento. – LorenzCK