¿Cuál es la diferencia entre Html.Textbox y Html.TextboxFor?
¿Cuál es la diferencia entre Html.Textbox y Html.TextboxFor?
Respuestas:
En última instancia, ambos producen el mismo HTML, pero Html.TextBoxFor () está fuertemente tipado, mientras que Html.TextBox no lo está.
1: @Html.TextBox("Name")
2: Html.TextBoxFor(m => m.Name)
ambos producirán
<input id="Name" name="Name" type="text" />
Entonces, ¿qué significa eso en términos de uso?
Generalmente dos cosas:
TextBoxFor
generará sus nombres de entrada por usted. Por lo general, este es solo el nombre de la propiedad, pero para las propiedades de tipos complejos puede incluir un guión bajo como 'nombre_cliente'TextBoxFor
versión escrita le permitirá usar la verificación del tiempo de compilación. Entonces, si cambia su modelo, puede verificar si hay algún error en sus vistas.En general, se considera una mejor práctica utilizar las versiones fuertemente tipadas de HtmlHelpers que se agregaron en MVC2 .
El TextBoxFor
es una nueva extensión de entrada MVC introducido en MVC2.
El principal beneficio de las nuevas extensiones fuertemente tipadas es mostrar cualquier error / advertencia en tiempo de compilación en lugar de tiempo de ejecución.
Vea esta página.
http://weblogs.asp.net/scottgu/archive/2010/01/10/asp-net-mvc-2-strongly-typed-html-helpers.aspx
En mi opinión, la principal diferencia es que Textbox no está fuertemente tipado. TextboxFor toma un lambda como parámetro que le dice al ayudante el elemento with del modelo para usar en una vista escrita.
Puede hacer lo mismo con ambos, pero debe usar vistas escritas y TextboxFor cuando sea posible.
Html.TextBox y Html.DropDownList no están fuertemente tipados y, por lo tanto, no requieren una vista fuertemente tipada. Esto significa que podemos codificar cualquier nombre que queramos. Por otro lado, Html.TextBoxFor y Html.DropDownListFor están fuertemente tipados y requieren una vista fuertemente tipada, y el nombre se infiere de la expresión lambda.
Los ayudantes HTML fuertemente tipados también proporcionan verificación del tiempo de compilación.
Dado que, en tiempo real, usamos principalmente vistas fuertemente tipadas, preferimos usar Html.TextBoxFor y Html.DropDownListFor sobre sus contrapartes.
Ya sea que usemos Html.TextBox & Html.DropDownList O Html.TextBoxFor & Html.DropDownListFor, el resultado final es el mismo, es decir, producen el mismo HTML.
Se añaden ayudantes HTML fuertemente tipados en MVC2.