Kann ich ASP.NET MVC Html.RouteLink () gibt eine URL für meine Homepage ohne ID machen?
-
20-08-2019 - |
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?
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.