¿Puedo hacer que ASP.NET MVC Html.RouteLink () devuelva una url para mi página de inicio sin una ID?
-
20-08-2019 - |
Pregunta
Tengo una única ruta en mi Global.asax.vb
página como esta ...
Shared Sub RegisterRoutes(ByVal routes As RouteCollection) routes.IgnoreRoute("{resource}.axd/{*pathInfo}") routes.MapRoute( _ "IdOnly", _ "{id}", _ New With {.controller = "Page", _ .action = "Details", _ .id = "7"} _ ) End Sub
Eso id
es para mi página de inicio. Se muestra cuando alguien navega a mi: http://example.com/
Pero, esto también funciona: http://example.com/7
Me gustaría no tener enlaces en ninguna parte de mi sitio a la dirección con Html.RouteLink()
de 7. Pero, la función href
genera esos.
Para una vista Modelo que es un elemento secundario de la página de inicio & # 8230;
<%=Html.RouteLink(Model.Parent.Title, _
"IdOnly", _
New With {.id = Model.Parent.Id})%>
& # 8230; genera la siguiente etiqueta de anclaje:
<a href="/7">Home</a>
¿Cómo puedo anular el <=> generado por la función <=> para mi página de inicio?
Solución
Agregue una nueva ruta antes de su " IdOnly " ruta para la página de inicio:
routes.MapRoute( _
"HomePage", _
"", _
New With {.controller = "Page", _
.action = "Details", _
.id = "7"} _
)
RouteLink
usará la primera asignación coincidente en la tabla de enrutamiento para generar el enlace.