Posso fare in modo che ASP.NET MVC Html.RouteLink () restituisca un URL per la mia home page senza un ID?

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

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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top