web-dev-qa-db-fra.com

Html.Textbox VS Html.TextboxFor

Quelle est la différence entre Html.Textbox et Html.TextboxFor?

91
eyalb

En fin de compte, ils produisent tous deux le même code HTML, mais Html.TextBoxFor () est fortement typé à la place de Html.TextBox n'est pas.

1:  @Html.TextBox("Name")
2:  Html.TextBoxFor(m => m.Name)

sera à la fois produire

<input id="Name" name="Name" type="text" />

Alors, qu'est-ce que cela signifie en termes d'utilisation?

Généralement deux choses:

  1. Le TextBoxFor saisi générera vos noms d’entrée pour vous. C'est généralement juste le nom de la propriété, mais pour les propriétés de types complexes, vous pouvez inclure un trait de soulignement tel que 'nom_client'
  2. L'utilisation de la version TextBoxFor saisie vous permettra d'utiliser la vérification du temps de compilation. Donc, si vous modifiez votre modèle, vous pouvez vérifier si votre vue contient des erreurs.

Il est généralement considéré comme une meilleure pratique d’utiliser les versions fortement typées des HtmlHelpers qui étaient ajouté dans MVC2 .

113
David Glenn

TextBoxFor est une nouvelle extension d'entrée MVC introduite dans MVC2.

Le principal avantage des nouvelles extensions fortement typées est de montrer les erreurs/avertissements au moment de la compilation plutôt que lors de l'exécution.

Voir cette page.

http://weblogs.asp.net/scottgu/archive/2010/01/10/asp-net-mvc-2-strongly-typed-html-helpers.aspx

15
iain

OMI la différence principale est que Textbox n'est pas fortement typé. TextboxFor prend un lambda en tant que paramètre qui indique à l’assistant l’élément with du modèle à utiliser dans une vue typée.

Vous pouvez faire la même chose avec les deux, mais vous devez utiliser des vues typées et TextboxFor lorsque cela est possible.

6
Jonathan

Html.TextBox AMD Html.DropDownList ne sont pas fortement typés et ne nécessitent donc pas de vue fortement typée. Cela signifie que nous pouvons coder en dur quel que soit le nom que nous voulons. D'autre part, Html.TextBoxFor et Html.DropDownListFor sont fortement typés et nécessitent une vue fortement typée. Le nom est déduit de l'expression lambda.

Des assistants HTML fortement typés fournissent également une vérification du temps de compilation.

Puisque, en temps réel, nous utilisons principalement des vues fortement typées, préférons utiliser Html.TextBoxFor et Html.DropDownListFor par rapport à leurs contreparties.

Que nous utilisions Html.TextBox & Html.DropDownList OR Html.TextBoxFor & Html.DropDownListFor, le résultat final est identique, c’est-à-dire qu’ils produisent le même code HTML.

Des assistants HTML fortement typés sont ajoutés dans MVC2.

3
Yogesh Yadav