Html.Textbox VS Html.TextboxFor


Risposte:


117

In definitiva entrambi producono lo stesso HTML ma Html.TextBoxFor () è fortemente tipizzato dove Html.TextBox non lo è.

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

produrrà entrambi

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

Quindi cosa significa in termini di utilizzo?

Generalmente due cose:

  1. Il digitato TextBoxForgenererà i tuoi nomi di input per te. Di solito è solo il nome della proprietà, ma per le proprietà di tipi complessi può includere un trattino basso come "nome_cliente"
  2. L'uso della TextBoxForversione digitata ti consentirà di utilizzare il controllo del tempo di compilazione. Quindi, se modifichi il tuo modello, puoi verificare se ci sono errori nelle tue visualizzazioni.

È generalmente considerata una pratica migliore utilizzare le versioni fortemente tipizzate di HtmlHelpers aggiunte in MVC2 .



7

IMO la differenza principale è che Textbox non è fortemente tipizzato. TextboxFor prende un 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 possibile.


3

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

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

Poiché, in tempo reale, utilizziamo principalmente visualizzazioni fortemente tipizzate, preferiamo utilizzare Html.TextBoxFor e Html.DropDownListFor rispetto alle loro controparti.

Sia che usiamo Html.TextBox & Html.DropDownList O Html.TextBoxFor & Html.DropDownListFor, il risultato finale è lo stesso, cioè producono lo stesso HTML.

Gli helper HTML fortemente tipizzati vengono aggiunti in MVC2.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.