[PS Além do blog, eu também estou agora utilizando o
Twitter para atualizações rápidas e para compartilhar links. Siga-me em:
twitter.com/scottgu
Este é o primeiro de uma
série de posts que estou escrevendo sobre o próximo lançamento da ASP.NET MVC
2. Este post abrange os novos helpers HTML
(métodos de ajuda HTML) fortemente tipados adicionados na ASP.NET MVC 2.
Métodos de Ajuda HTML Existentes
A ASP.NET MVC 1 foi lançada com um conjunto de métodos de
ajuda HTML que podem ser usados dentro de view templates (modelos de visão) para
ajudar com a geração do HTML utilizado na UI. Por
exemplo, para gerar uma TextBox (caixa de texto) você poderia escrever código (dentro
do seu modelo de visão .aspx) usando o método de ajuda HTML.TextBox() igual a seguir:
O primeiro parâmetro para o método de ajuda acima fornece
o nome/id para a caixa de texto, e o segundo parâmetro especifica o valor que esta
deveria ter. O método de ajuda acima, então,
renderizará código HTML como o mostrado a seguir de volta para um browser (navegador):
Novos Métodos de Ajuda HTML Fortemente Tipados
Uma dos pedidos de funcionalidade mais comuns que as pessoas
tinham para a ASP.NET MVC 2 foi para que nós também suportássemos métodos de ajuda
HTML fortemente tipados que usam expressões lambda quando estes referenciam modelos/visões
de modelo passados para um modelo de visão. Isso
permite uma melhor
verificação do código das visões no tempo de compilação (de modo que os
erros podem ser encontrados em tempo de compilação em oposição ao tempo de execução),
e também permite um melhor suporte de código IntelliSense dentro dos modelos de
visão.
Novos métodos de ajuda HTML são agora incorporados à ASP.NET
MVC 2. Estes métodos utilizam uma convenção de nomes
no formato "HTMLHelperNameFor()"
Por exemplo: HTML.TextBoxFor(),
HTML.CheckBoxFor(), HTML.TextAreaFor(), etc. Eles suportam
o uso de uma expressão lambda para especificar tanto o nome/id do elemento, bem
como o valor a renderizar para ele.
Por exemplo, usando a ASP.NET MVC 2, podemos agora usar
o método de ajuda HTML.TextBoxFor(), além do HTML.TextBox() acima:
Observe acima como nós não precisamos especificar o
parâmetro do tipo string "ProductName" - expressões lambda são flexíveis o suficiente para que possamos
recuperar o nome da propriedade/campo do nosso modelo de objeto além do seu valor.
Em virtude dos métodos de ajuda HTML serem fortemente tipados,
também temos total suporte da IntelliSense para eles dentro do Visual Studio, ao
escrevermos a expressão lambda:
O HTML renderizado é o mesmo do método de ajuda HTML mostrado
anteriormente:
Lista de Métodos de Ajuda HTML Fortemente Tipados que
Acompanham a ASP.NET MVC 2
A ASP.NET MVC 2 foi construída com suporte para os seguintes
métodos de ajuda HTML fortemente tipados:
Métodos de Ajuda HTML para Elementos:
- Html.TextBoxFor ()
- Html.TextAreaFor
()
- Html.DropDownListFor
()
- Html.CheckboxFor
()
- Html.RadioButtonFor
()
- Html.ListBoxFor ()
- Html.PasswordFor
()
- Html.HiddenFor ()
- Html.LabelFor ()
Outros Métodos de Ajuda:
- Html.EditorFor ()
- Html.DisplayFor ()
- Html.DisplayTextFor
()
- Html.ValidationMessageFor
()
Eu vou falar mais sobre os novos métodos de ajuda HTML.EditorFor() e HTML.DisplayFor()
em um post mais para frente nesta série, quando eu falar mais sobre a melhoria para
auto-scaffold (geração automática de código) implementada na ASP.NET MVC 2.
Nós também usaremos o método de ajuda HTML.ValidationMessageFor() no meu próximo post desta série, que
abrange a melhoria no suporte à validação de dados dentro da ASP.NET MVC 2.
Métodos de Ajuda HTML Fortemente Tipados dentro da Geração
de Código Automática
O VS 2008 e o VS 2010, por padrão agora usam os novos métodos
de ajuda HTML fortemente tipados quando "geram código automaticamente" para modelos
de visão fortemente tipadas usando o comando "Add View" (Adicionar Visão).
Por exemplo, vamos supor que nós tivéssemos uma simples
classe "ProdutosController" como a seguir que tem um método de ação "Editar" que
renderiza um formulário de edição para uma classe Produto do modelos de dados:
Nós podemos clicar com o botão direito do mouse dentro do
método de ação Edit usando o Visual Studio e selecionar o comando do menu de contexto
"Add View" para criar um modelo de visão. Vamos optar
por criar um modelo de visão "Editar" que é "scaffolded" (gerado automaticamente)
usando um objeto Produto:
Com a ASP.NET MVC 2, o modelo da visão que é criado por
padrão já utiliza os novos métodos de ajuda HTML fortemente tipados para fazer referência
ao objeto Produto do modelo de dados:
Resumo
Os métodos de Ajuda HTML Fortemente Tipados incluídos na
ASP.NET MVC 2 fornecem uma boa maneira de obter uma melhor verificação de tipos
dentro dos seus modelos de visão. Isso permite uma
melhor verificação das suas visões no tempo de compilação (o que lhe permite localizar
erros em tempo de compilação ao invés do tempo de execução), e também permite o
suporte à IntelliSense mais rica quando realizar a edição de seus modelos dentro
do Visual Studio.
Espero que ajude,
Scott
Texto traduzido do post original por Leniel Macaferi.