Posso fare in modo che ASP.NET MVC Html.RouteLink () restituisca un URL per la mia home page senza un ID?
-
20-08-2019 - |
Domanda
Ho un solo percorso nella mia Global.asax.vb
pagina come questa ...
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
Che id
è per la mia home page. Viene visualizzato quando qualcuno naviga verso il mio: http://example.com/
Ma funziona anche: http://example.com/7
Vorrei non avere collegamenti in nessun punto del mio sito all'indirizzo con Html.RouteLink()
di 7. Ma, la funzione href
genera quelli.
Per una vista Modello che è figlio della home page & # 8230;
<%=Html.RouteLink(Model.Parent.Title, _
"IdOnly", _
New With {.id = Model.Parent.Id})%>
& # 8230; genera il seguente tag di ancoraggio:
<a href="/7">Home</a>
Come posso ignorare il <=> generato dalla funzione <=> per la mia home page?
Soluzione
Aggiungi una nuova rotta prima del tuo " IdOnly " percorso per la home page:
routes.MapRoute( _
"HomePage", _
"", _
New With {.controller = "Page", _
.action = "Details", _
.id = "7"} _
)
RouteLink
utilizzerà il primo mapping corrispondente nella tabella di routing per generare il collegamento.