Y a-t-il une différence entre HTML.ActionLink
vs Url.Action
ou ce ne sont que deux façons de faire la même chose?
Quand devrais-je préférer l'un à l'autre?
asp.net-mvc
asp.net-mvc-3
razor
Pankaj Upadhyay
la source
la source
Html.ActionLink
pour les générer. N'essayez pas de faire de telles micro-optimisations. Vous vous retrouverez avec du code laid dans vos vues.<a>
). Utilisez Url.Action lorsque vous devez générer uniquement une URL (cela peut également être utilisé dans une action de contrôleur).Url.Action
est beaucoup plus performant queHtml.ActionLink
. J'avais une liste de 6 000 articles qui en avaient 2Html.ActionLinks
. Il a fallu 6 600 ms pour rendre la liste. Sans l'Html.ActionLinks
il a fallu 52ms.Url.Action
Son utilisation a pris 270 ms. Certes, 6000 articles sont une grande liste, mais j'ai pensé l'ajouter pour référence future.Html.ActionLink
génère une<a href=".."></a>
balise automatiquement.Url.Action
génère uniquement une URL.Par exemple:
génère:
et
génère:
Le meilleur point positif que j'aime est d'utiliser
Url.Action(...)
Vous créez une balise d'ancrage par vous-même où vous pouvez définir votre propre texte lié facilement, même avec une autre balise html.
la source
Dans l'exemple ci-dessus, vous pouvez voir que si j'ai spécifiquement besoin d'un bouton pour effectuer une action, je dois le faire avec @ Url.Action alors que si je veux juste un lien, j'utiliserai @ Html.ActionLink. Le point est quand vous devez utiliser un élément (HTML) avec une action URL est utilisée.
la source
@HTML.ActionLink
génère unHTML anchor tag
. Alors que@Url.Action
génère unURL
pour vous. Vous pouvez facilement le comprendre par;Ces deux approches sont différentes et cela dépend totalement de vos besoins.
la source
Vous pouvez facilement présenter Html.ActionLink sous la forme d'un bouton en utilisant le style CSS approprié. Par exemple:
la source
J'ai utilisé le code ci-dessous pour créer un bouton et cela a fonctionné pour moi.
la source