321 votes

Pourquoi Html.ActionLink rend-il "?Length=4" ?

Je suis TRÈS confus quant à la raison pour laquelle ce code

Html.ActionLink("About", "About", "Home", new { hidefocus = "hidefocus" })

résultats dans ce lien :

<a hidefocus="hidefocus" href="stackoverflow.com/Home/About?Length=4">About</a>

El hidefocus est ce que je cherchais à atteindre, mais où se trouve la partie ?Length=4 proviennent-ils ?

4 votes

Ce comportement apparaît également avec les méthodes Html.BeginForm().

0voto

Taersious Points 148

Peut-être que d'autres personnes ont eu le même problème et doivent fournir un classe valeur via HTMLAttributes parm. Voici ma solution :

@Html.ActionLink("About", "About", new { controller = "Home", area = "" }, new { hidefocus = "hidefocus", @class = "nav-item nav-link" })

0voto

Irf Points 1954

La recherche d'une réponse à ma question m'a atterri ici, il s'agit essentiellement de la sélection de la surcharge correcte de @Html.ActionLink enter image description here ce qui compte.
Je sélectionnais une surcharge qui n'existait pas, ( sans le site dernier null ), et MVC n'avait pas une telle surcharge, résultant en une fausse URL comme celle mentionnée par le PO.

Un personnel note : vous pouvez use Les types anonymes ne signifient pas que vous pouvez utiliser toutes les surcharges - qui font n'existe pas ? - assurez-vous : il a à définir !
- Venu ici en temps de MVC 5.2

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X