2009-03-18 4 views
3

ich eine einzige Route in meiner Global.asax.vb Seite wie diese haben ...Kann ich ASP.NET MVC Html.RouteLink() eine URL für meine Homepage ohne eine ID zurückgeben?

 
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 

Das id für meine Homepage ist. Es wird angezeigt, wenn jemand navigiert zu meinen: http://example.com/

Aber funktioniert das auch: http://example.com/7

Ich mag keine Verbindungen haben, überall auf meiner Seite an die Adresse mit id von 7. Aber die Html.RouteLink() Funktion erzeugt jene.

Für eine Ansicht Modell, das ein Kind der Homepage ist & hellip;

<%=Html.RouteLink(Model.Parent.Title, _ 
        "IdOnly", _ 
        New With {.id = Model.Parent.Id})%> 

& hellip; generiert die folgende Anker-Tag:

<a href="/7">Home</a> 

Wie kann ich die href durch die Html.RouteLink() Funktion für meine Homepage generiert außer Kraft setzen?

Antwort

4

eine neue Route vor Ihrer "IdOnly" Route für die Homepage hinzufügen:

routes.MapRoute(_ 
    "HomePage", _ 
    "", _ 
    New With {.controller = "Page", _ 
       .action = "Details", _ 
       .id = "7"} _ 
) 

RouteLink den ersten abgestimmte Mapping in der Routing-Tabelle verwenden Sie den Link zu generieren.

+0

Elegant. Vielen Dank. –

Verwandte Themen