Html.Textbox VS Html.TextboxFor

Qual è la differenza tra Html.Textbox e Html.TextboxFor?

Alla fine entrambi producono lo stesso HTML ma Html.TextBoxFor () è fortemente digitato dove non lo è Html.TextBox .

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

entrambi produrranno

  

Quindi cosa significa in termini di utilizzo?

Generalmente due cose:

  1. Il TextBoxFor digitato genererà i tuoi nomi di input per te. Questo di solito è solo il nome della proprietà, ma per le proprietà dei tipi complessi può includere un trattino basso come ‘customer_name’
  2. Usando la versione TextBoxFor digitato ti permetterà di usare il controllo del tempo di compilazione. Quindi, se cambi il modello, puoi verificare se ci sono errori nelle tue visualizzazioni.

In genere, è consigliabile utilizzare le versioni fortemente tipizzate di HtmlHelpers che sono state aggiunte in MVC2 .

TextBoxFor è una nuova estensione di input MVC introdotta in MVC2.

Il vantaggio principale delle nuove estensioni fortemente tipizzate consiste nel mostrare eventuali errori / avvisi in fase di compilazione piuttosto che in fase di esecuzione.

Vedi questa pagina.

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

IMO la differenza principale è che Textbox non è fortemente digitato. TextboxPer prendere una lambda come parametro che dice all’helper l’elemento with del modello da usare in una vista tipizzata.

Puoi fare le stesse cose con entrambi, ma dovresti usare le viste digitate e TextboxFor quando ansible.

Html.TextBox amd Html.DropDownList non sono fortemente tipizzati e quindi non richiedono una vista fortemente tipizzata. Ciò significa che possiamo codificare qualsiasi nome che vogliamo. D’altra parte, Html.TextBoxFor e Html.DropDownListFor sono fortemente tipizzati e richiedono una vista fortemente tipizzata, e il nome è dedotto dall’espressione lambda.

Gli helper HTML fortemente tipizzati forniscono anche il controllo del tempo di compilazione.

Poiché, in tempo reale, utilizziamo principalmente viste fortemente tipizzate, preferiamo utilizzare Html.TextBoxFor e Html.DropDownListFor sulle loro controparti.

Se, usiamo Html.TextBox e Html.DropDownList O Html.TextBoxFor e Html.DropDownListFor, il risultato finale è lo stesso, cioè producono lo stesso HTML.

Gli helper HTML fortemente tipizzati vengono aggiunti in MVC2.