Utiliser Html.ActionLink et Url.Action (...) depuis le contrôleur

Je veux écrire un HtmlHelper de rendre un ActionLink avec des valeurs prédéfinies, par exemple.

<%=Html.PageLink("Page 1", "page-slug");%>

PageLink est une fonction qui s'appelle ActionLink avec une Action et d'un régulateur, par exemple. "Index" et "Page".

Depuis HtmlHelper et UrlHelper n'existent pas à l'intérieur d'un Controller ou de la classe, comment puis-je obtenir l'URL relative à une action dans l'intérieur de la classe?

Mise à jour: compte tenu de la période additionnelle de trois ans des acquis de l'expérience que j'ai maintenant, voici mon conseil: il suffit d'utiliser Html.ActionLink("My Link", new { controller = "Page", slug = "page-slug" }) ou, mieux encore,

<a href="@Url.Action("ViewPage",
                     new {
                           controller = "Page",
                           slug = "my-page-slug" })">My Link</a>

Votre méthode d'extension peut être mignon et court, mais il ajoute une autre non testés point de rupture et un nouveau besoin de formation pour les locations sans ajout de valeur réelle que ce soit. Il pense que la conception d'un système complexe. Pourquoi en ajouter une autre pièce en mouvement, à moins qu'il ajoute de la fiabilité (pas), la lisibilité (peu, une fois que vous lisez plus docs), la vitesse (aucun) ou de la concurrence (aucun).

source d'informationauteur Petrus Theron