Vinicius Quaiato

{tecnologia, conceitos, negócios, idéias, práticas, .NET, ruby, osx, ios e algo mais}

ASP.NET MVC 3: Criando view helpers com Razor


Fala galera, pois é, não canso de falar do ASP.NET MVC 3, temos muitas novidades interessantes.Hoje quero mostrar mais uma delas, bastante interessante e simples: A criação de Helpers no Razor.Agora é possível criar Helpers de forma mais simples utilizando Razor. Isso quer dizer que temos uma amneira fácil de criar helpers mesclando HTML e C#, afinal o Razor nos permite isso.Não precisamos mais criar uma classe puramente C# e ficar trabalhando com Response.Write. Já que a transição do código C# para o código HTML é simples, vamos utilizar isso.

Criando um helper com Razor

Primeiramente precisamos criar a pasta "App_Code". Os helpers do Razor precisam estar neste folder:Criar pasta App_Code para usar Razor helpers

Agora basta criarmos um arquivo Razor nesta pasta. Vou criar um arquivo chamado "MeuHelper.cshtml" e colocar o código abaixo:Este código NÃO funciona mais!

@helper PrintBlogAddress(){
isite: http://viniciusquaiato.com}

Na versão RC (e posterior do ASP.NET MVC 3) este código não está mais funcionando. Para que o mesmo funcione você precisa colocar esse conteúdo dentro de alguma marcação HTML:

@helper PrintBlogAddress(){
Visite: http://viniciusquaiato.com
}

É isso! Este é o processo de criação de um Helper no Razor: muito simples!Primeiro utilizamos a marcação @helper. Com isso informação que estamos criando um helper. Informamos o nome do método e seus parâmetros caso existam.Como estamos trabalhando com Razor, podemos facilmente mesclar o código HTML com o código C#. No meu caso apenas utilizei código HTML, e escrevi um texto. Ou seja, este meu helper apenas coloca esta frase na tela. Não há necessidade de StringBuilders, trabalhar com response, etc. É tudo Razor!E para utilizar faço a seguinte chamada na minha view:

<body>    <div>        @MeuHelper.PrintBlogAddress()    </div></body>

Mais simples que isso, não sei! Utilizamos o símbolo de @ do Razor para mostrar que queremos "printar" esta informação no response. Depois colocamos o nome do arquivo seguido pelo nome do método. Bastante simples.E como resultado:Resultado Razor helper

É isso aê galera. Temos uma maneira bastante simples de criar helpers para trabalhar com HTML.Eu particularmente gosto desta abordagem pois no geral os helpers que criamos existem para lidar com HTML, e o Razor é perfeito para isso. Eu quase acredito que estou trabalhando apenas com HTML (HTML6 talvez? :P).

Abraços, Vinicius Quaiato.

Voltar

Fork me on GitHub