ASP.NET MVC 2: Métodos de Ajuda HTML Fortemente Tipados


[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:

imagem

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):

imagem

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:

imagem

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:

imagem

O HTML renderizado é o mesmo do método de ajuda HTML mostrado anteriormente:

imagem

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:

imagem

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:

imagem

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:

imagem

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.

No Comments