Question

Je pense que le titre à peu près résume:

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

i.e.. quand utilisez-vous et quand utilisez Html.RouteLink()-vous dans votre vue Html.ActionLink()?

Était-ce utile?

La solution

Action et routes ne doivent pas avoir un 1: 1. Relation

ActionLink va générer l'URL pour se rendre à une action en utilisant la première route correspondant par nom d'action.

RouteLink va générer une URL à un itinéraire spécifique déterminée soit par des valeurs de nom ou l'itinéraire.

Autres conseils

En fait, la sortie de ces deux méthodes est le même, mais il est généré de façon légèrement différente:

Html.ActionLink() il est facile de générer ActionLinks rapide, et vous donnera le contrôle de base sur ce qui est rendu. Si vous n'avez pas trop de routes, ou ne pas besoin de donner trop ou trop d'informations spécifiques, cela fera le travail très bien.

Html.RouteLink() méthode prend des arguments légèrement différents, et donc vous donne un peu de contrôle 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 quand j'ai une structure de route plus détaillée.
Un exemple est un projet récent où je (la flexibilité) plutôt eu plusieurs voies différentes, qui ont tous été assez simple, d'un complexe qui permettrait de beaucoup d'informations. Ainsi, je me suis retrouvé avec quatre ou cinq voies pour le même contrôleur, toutes avec une action par défaut spécifiée. J'ai surtout utilisé la RouteLink version parce que lorsque je spécifie un nom d'itinéraire, les paramètres par défaut ont été saisies automatiquement.

Utilisez-les comme vous vous sentez comme, et comme elles ont un sens à votre projet. Il n'y a vraiment pas à l'envers / inconvénient de l'un d'eux (qui ne correspond pas par une autre ...).

En plus des autres réponses données ici, RouteLink est un peu plus rapide, et ne peut jamais correspondre à la mauvaise route parce que vous avez changé votre table de routage.

RouteLink prend le nom d'une route, donc si vos noms d'itinéraire sont fiables et assez unique ce sera le même, même si le nom de l'action à des changements utilisés. liens ActionLink à une action spécifique d'un contrôleur spécifique au lieu. Je l'utilise aussi bien dans mon point de vue, selon le type de lien que je suis après!

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