¿Puedo hacer que ASP.NET MVC Html.RouteLink () devuelva una url para mi página de inicio sin una ID?

StackOverflow https://stackoverflow.com/questions/660373

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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top