Qual è la differenza tra Html.Textbox e Html.TextboxFor?
Qual è la differenza tra Html.Textbox e Html.TextboxFor?
Risposte:
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:
TextBoxFor
genererà 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"TextBoxFor
versione 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 .
È TextBoxFor
un'estensione di input MVC più recente introdotta in MVC2.
Il vantaggio principale delle nuove estensioni fortemente tipizzate è di mostrare eventuali errori / avvisi in fase di compilazione anziché 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 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.
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.