Quelle est la différence entre RouteLink et ActionLink dans ASP.NET MVC?


120

Je pense que le titre résume assez bien:

Quelle est la différence entre RouteLink()et ActionLink()dans ASP.NET MVC?

c'est-à-dire quand utilisez-vous Html.RouteLink()et quand utilisez-vous Html.ActionLink()dans votre vue?

Réponses:


78

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.


+1 pour un excellent article de blog. Vraiment pratique. Et montre qu'il y a trop de possibilités. Les gars MS ne devraient mettre en œuvre que le plus rapide. Mais les gens utilisent plutôt le lambda le plus lent.
Robert Koritnik

hé merci Mais je pense que le lien est rompu n'a pas atteint.
Veuillez

5
pouvons-nous avoir des exemples?
MaylorTaylor

67

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 RouteLinkversion, 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 ...).



12

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!

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.