Puis-je obliger ASP.NET MVC Html.RouteLink () à renvoyer une URL pour ma page d'accueil sans ID?
-
20-08-2019 - |
Question
J'ai un seul itinéraire dans ma Global.asax.vb
page comme celle-ci ...
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
Ce id
est pour ma page d'accueil. Il est affiché lorsque quelqu'un accède à mon: http://example.com/
Mais cela fonctionne aussi: http://example.com/7
Je voudrais ne pas avoir de lien, où que ce soit sur mon site, avec l'adresse Html.RouteLink()
sur 7. Cependant, la fonction href
génère ces liens.
Pour une vue modèle modèle de la page d'accueil & # 8230;
<%=Html.RouteLink(Model.Parent.Title, _
"IdOnly", _
New With {.id = Model.Parent.Id})%>
& # 8230; génère la balise d'ancrage suivante:
<a href="/7">Home</a>
Comment puis-je remplacer le <=> généré par la fonction <=> pour ma page d'accueil?
La solution
Ajoutez une nouvelle route avant votre " IdOnly " route pour la page d'accueil:
routes.MapRoute( _
"HomePage", _
"", _
New With {.controller = "Page", _
.action = "Details", _
.id = "7"} _
)
RouteLink
utilisera le premier mappage correspondant dans la table de routage pour générer le lien.