Html.Textbox VS Html.TextboxFor

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

En fin de compte, ils produisent tous deux le même HTML, mais Html.TextBoxFor () est fortement typé, contrairement à Html.TextBox .

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

vont tous deux produire

  

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

Généralement deux choses:

  1. Le TextBoxFor tapé générera vos noms d’entrée pour vous. Ceci est généralement juste le nom de la propriété mais pour les propriétés de types complexes peut inclure un trait de soulignement tel que “customer_name”
  2. L’utilisation de la version TextBoxFor typée vous permettra d’utiliser la vérification du temps de compilation. Donc, si vous modifiez votre modèle, vous pouvez vérifier s’il y a des erreurs dans vos vues.

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

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

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

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

Html.TextBox et 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. En revanche, Html.TextBoxFor et Html.DropDownListFor sont fortement typés et nécessitent une vue fortement typée, et le nom est déduit de l’expression lambda.

Les helpers 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érez utiliser Html.TextBoxFor et Html.DropDownListFor sur leurs homologues.

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

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