Tarefas Básicas com Asp.Net. Parte II – HTML Helpers.    

Olá pessoal, nessa semana vo fazer um post bem simples, No post anterior, criei um cadastro básico. Nele, quis deixar claro que queria fazer tudo na mão, criando todo o HTML, apenas para tentar deixar mais claro como funciona a integração entre View e Controller.

Neste post, vou mostra como podemos diminuir a tarefa, muitas vezes enfadonha, de ficar digitando HTML constantemente, através da utilização de HTML Helpers

O que é um HTML Helper

HTML Helper são métodos estáticos que retornam simples strings. Lembre que no Asp.Net MVC não tem server controls como no WebForm, portanto, não espere que um HTML Helper te retorne um “controle” HTML onde você pode definir propriedades após a criação do mesmo via C#. Como disse, ele só retorna strings, em geral que represente uma tag HTML. Você pode criar também qualquer tipo de HTML Helper, mas isso é assunto para outro post, neste vamos apenas falar da utilização.

Por padrão, o Asp.Net MVC já vêm com uma série de Helper pré definidos, alguns deles estão na listagem abaixo:

  • Html.BeginForm()
  • Html.EndForm()
  • Html.TextBox()
  • Html.Hidden()
  • Html.ActionLink()
  • Html.CheckBox()
  • Html.DropDownList()
  • Html.ListBox()
  • Html.Password()
  • Html.RadioButton()
  • Html.TextArea()

A lista acima não tem todos os Helper, mas os mais comuns para criar um formulário de cadastro, por exemplo.

A utilização dos Helpers te abstrai das regras da criação dos formulários. Por exemplo, no exemplo do post anterior, o formulário de criação era o seguinte:

   <form name="formCadastro" action="Create" method="post">
    <h2>
        Criar novo Contato</h2>
    <p>
        <span>Nome</span><input type="text" name = "txtNome" id="txtNome" /></p>
    <p>
        <span>E-mail</span><input type="text" name = "txtEmail"  id="txtEmail" /></p>
    <p>
        <span>Telefone</span><input type="text" id="txtTelefone" name = "txtTelefone"  /></p>
    <p>
        <input type="submit" value="Salvar" /></p>
    </form>

Utilizando os Helpers, ele ficaria da seguintes forma:

    
<%using(Html.BeginForm()){ %>
 <h2>
        Criar novo Contato</h2>
    <p<
        <span>Nome</span><%:Html.TextBox("txtNome")%></p>
    <p>
        <span>E-mail</span><%:Html.TextBox("txtEmail")%></p>
    <p>
        <span>Telefone</span><%:Html.TextBox("txtTelefone")%></p>
    <p>
        <input type="submit" value="Salvar" /></p>
    <%} %>

Perceba que nitidamente tem menos HTML criado, e menos conhecimento de infra estrutura Web é necessário, pois eu não precisei definir o tipo do método do formulário, não precisei definir a Action, o Helper Html.BeginForm presumiu todo o necessário para criar o formulário.

É interessante notar também que em vezes de invocar o BeginForm e o EndForm, utilizei uma diretiva using como muitas vezes é utilizado no C# para definir o início e fim de uma instância de um objeto. Dessa forma, o HTML Helper sabe onde deve colocar o a tag final do formulário, sem a necessidade de utilizar o helper EndForm.

E para criar os textboxes, informei apenas um parâmetro e ele já presumiu o id e o name do controle. Se você fizer essas alterações no exemplo do post anterior, verá que a página funcionará do mesmo jeito, sem necessitar de nenhuma alteração no Controller.

Perceba também que, com exceção do BeginForm, os demais helper precisam ser inseridos dentro de uma tag que imprime texto do Asp.Net. No caso, utilizei as tags Asp.Net <%:Html.TextBox("txtNome") %>, poderia também <%= Html.TextBox("txtNome")%>, ou até mesmo um <%Response.Write(Html.TextBox("txtNome"));%>, lembre-se sempre, eu preciso colocar as tags de print ou utilizar o Response.Write, porque o helper retorna apenas uma string.

Outro exemplo de utilização muito útil de um Html Helper, seria para criar links, sem a necessidade de ter que informar o nome do Controller e da Action, como de costume. Por exemplo, o link abaixo:

<a href="Cadastro/Create">Novo</a>

Poderia ser criado utilizando um Helper da seguinte forma:

<%:Html.ActionLink("Nome","Create") %>

Perceba que não preciso assim conhecer quais são os atributos necessários de um link, apenas definir um texto para o link e saber qual Action invocar no meu Controller atual.

Bom, você viu como pode ser utilizado os Helpers HTML do MVC, é bom conhecer toda a lista existente de Helpers, para podermos maximizar o desempenho no desenvolvimento de sites com MVC, e, é claro, é importante saber que é possível, e simples, criar novos Helpers, para criar estruturas mais complexas, ou mesmo criar conjuntos de Tags que você utiliza sempre, como uma tela de acesso, ou um controle JQuery de tabs. Isso falaremos em um próximo post.

É isso, como comentei, o post hoje seria bem simples.

Até o próximo!

12. dezembro 2010 20:03 by Frederico B. Emídio | Comments (1) | Permalink

Sobre mim

Minha Imagem

Meu nome é Frederico Batista Emídio, trabalho com desenvolvimento de sistemas profissionalmente a oito anos, porém, já faço sites pessoais a pelo menos dez anos.

Para saber mais clique aqui.

Páginas

Calendário

<<  novembro 2017  >>
seteququsedo
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

Visualizar posts em um Calendário
Sigua @fredemidio

MCP Asp.NET