Frage

Ich habe eine einzige Route in meiner Global.asax.vb Seite wie diese bekam ...

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 ist für meine Homepage. Es wird angezeigt, wenn jemand navigiert zu meinen: http://example.com/

Aber das funktioniert 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 diese.

Für eine Ansicht Modell, dass ein Kind von der Homepage ist ...

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

... erzeugt folgenden Anker-Tag:

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

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

War es hilfreich?

Lösung

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

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

RouteLink wird die erste abgestimmte Zuordnung in der Leitwegtabelle verwenden, um die Verbindung zu erzeugen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top