Qual é a diferença entre Html.Textbox e Html.TextboxFor?
Qual é a diferença entre Html.Textbox e Html.TextboxFor?
Respostas:
Em última análise, ambos produzem o mesmo HTML, mas Html.TextBoxFor () é fortemente tipado, enquanto Html.TextBox não é.
1: @Html.TextBox("Name")
2: Html.TextBoxFor(m => m.Name)
ambos produzirão
<input id="Name" name="Name" type="text" />
Então, o que isso significa em termos de uso?
Geralmente duas coisas:
TextBoxFor
irá gerar seus nomes de entrada para você. Geralmente é apenas o nome da propriedade, mas para propriedades de tipos complexos pode incluir um sublinhado, como 'nome_do_cliente'TextBoxFor
versão digitada permitirá que você use a verificação de tempo de compilação. Portanto, se você alterar seu modelo, poderá verificar se há algum erro em suas visualizações.É geralmente considerado como prática melhor usar as versões fortemente tipadas dos HtmlHelpers que foram adicionadas no MVC2 .
O TextBoxFor
é uma extensão de entrada MVC mais recente introduzida no MVC2.
O principal benefício das novas extensões fortemente tipadas é mostrar quaisquer erros / avisos em tempo de compilação, em vez de tempo de execução.
Veja esta página.
http://weblogs.asp.net/scottgu/archive/2010/01/10/asp-net-mvc-2-strongly-typed-html-helpers.aspx
IMO, a principal diferença é que a caixa de texto não é fortemente tipada. TextboxFor pega um lambda como parâmetro que informa ao auxiliar o elemento with do modelo para usar em uma visualização digitada.
Você pode fazer as mesmas coisas com ambos, mas deve usar visualizações digitadas e TextboxFor quando possível.
Html.TextBox amd Html.DropDownList não são fortemente tipados e, portanto, não requerem uma visualização fortemente tipada. Isso significa que podemos codificar qualquer nome que quisermos. Por outro lado, Html.TextBoxFor e Html.DropDownListFor são fortemente tipados e requerem uma visão fortemente tipada, e o nome é inferido da expressão lambda.
Auxiliares HTML fortemente tipados também fornecem verificação de tempo de compilação.
Visto que, em tempo real, usamos principalmente visualizações fortemente tipadas, preferimos usar Html.TextBoxFor e Html.DropDownListFor em vez de suas contrapartes.
Se usarmos Html.TextBox & Html.DropDownList OU Html.TextBoxFor & Html.DropDownListFor, o resultado final é o mesmo, ou seja, eles produzem o mesmo HTML.
Auxiliares HTML fortemente tipados são adicionados ao MVC2.