Puis-je obliger ASP.NET MVC Html.RouteLink () à renvoyer une URL pour ma page d'accueil sans ID?

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

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?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top