Réponses:
L'action et les itinéraires ne doivent pas nécessairement avoir une relation 1: 1.
ActionLink générera l'URL pour accéder à une action en utilisant la première route correspondante par nom d'action.
RouteLink générera une URL vers une route spécifique déterminée soit par le nom, soit par les valeurs de route.
En fait, la sortie des deux méthodes est la même, mais elle est générée de manière légèrement différente:
Html.ActionLink()
facilite la génération rapide d'ActionLinks et vous donne un contrôle de base sur ce qui est rendu. Si vous n'avez pas trop de routes, ou si vous n'avez pas besoin de donner trop ou trop d'informations spécifiques, cela fera très bien l'affaire.
La Html.RouteLink()
méthode prend des arguments légèrement différents et vous donne ainsi un contrôle un peu plus détaillé sur la façon dont les choses sont gérées. J'ai tendance à utiliser cette méthode lorsque mon scénario est un peu plus compliqué, ou lorsque j'ai une structure d'itinéraire plus détaillée.
Un exemple est un projet récent où je (pour la flexibilité) avait plutôt plusieurs itinéraires différents, qui étaient tous assez simples, plutôt qu'un projet complexe qui permettrait beaucoup d'informations. Ainsi, je me suis retrouvé avec quatre ou cinq routes pour le même contrôleur, toutes avec une action par défaut spécifiée. J'ai principalement utilisé la RouteLink
version, car lorsque j'ai spécifié un nom de route, les paramètres par défaut étaient saisis automatiquement.
Utilisez-les comme bon vous semble et comme ils correspondent à votre projet. Il n'y a vraiment aucun avantage / inconvénient pour l'un ou l'autre (qui ne soit égalé par aucun autre ...).
En plus des autres réponses données ici, RouteLink est un peu plus rapide et ne peut jamais correspondre au mauvais itinéraire car vous avez changé votre table de routage.
RouteLink prend le nom d'une route, donc si vos noms de route sont fiables et assez uniques, ce sera le même même si le nom de l'action à utiliser change. ActionLink établit plutôt des liens vers une action spécifique d'un contrôleur spécifique. J'utilise les deux dans mes vues, en fonction du type de lien que je recherche!