O que é Razor no ASP.NET MVC 3?

Razor com ASP.NET MVC 3

Razor é uma View Engine criada pela equipe do ASP.NET para codificação da View de páginas ASP.NET. O próprio ASP.NET possui uma View Engine padrão, mas o Razor se mostra bastante eficiente. Existem outras View Engines, como NHaml ou Spark.

Onde encontro um exemplo de aplicação com Razor?
O Razor é bastante potente e dá suporte a inúmeras necessidades da View. Veja uma View básica:

@{
    string variavel = “Uma variável”;
}
<b>@variavel</b>

É possível utilizar estruturas de programação junto a códigos HTML.

@{
    string variavel = “Uma variável”;
    List usuarios = new List()
    {
        “José”,
        “João”,
        “Ana”,
        “Julia”
    };
}

<h1>@variavel<h1>

@foreach (string usuario in usuarios)
{
    <i>Nome: <b>@usuario</b></i>

}

O Razor possui algumas estruturas características com benefícios específicos. Alguns exemplos comuns são: @RenderPage, @RenderBody, @RenderSection(), @PageData e @Helper.

A @RenderPage é uma Razor Global Helper que exibe uma View em específico. Tem função semelhante a Html.RenderParcial().

A @RenderBody é outra Razor Global Helper. Ela exibe o conteúdo de uma View. A View _Layout pode ter uma menção ao @RenderBody que é substituída por uma View específica quando utilizada. Isto lembra o Content Place Holder de uma Master Page.

A @RenderSection() é outra Razor Global Helper. Esta estrutura renderiza um bloco de código chamado de seção, que nada tem a ver com a seção do servidor web. Veja um exemplo:

<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
</head>

<body>
@section top{<h1>Teste de Seção</h1>}

<div id=”header”>
@RenderSection(“top”)
</div>

<div id=”main”>
@RenderBody()
</div>
</body>
</html>

A @PageData é outra Razor Global Helper. A @PageData exibe dados. Ela é uma Lista de pares de chave-valor (KeyValuePair<object, dynamic>). Ela é utilizada para ter dados que sejam trabalhados por entre as Views. Os dados da @PageData não são persistidos. Para a persistência destes dados devem-se utilizar as técnicas conhecidas (como Querystring, Form fields, Cookies, Session) ou outras quaisquer.

A @Helper é uma Razor Global Helper que armazena várias helpers específicas. Helpers são funções para auxiliar na programação ou desenho de uma View. Existem helpers disponíveis para download, construídos por terceiros, como os de integração com o Twitter (@Helper.FollowButton()).


Thiago Anselme
Thiago Anselme - Gerente de TI - Arquiteto de Soluções

Ele atua/atuou como Dev Full Stack C# .NET / Angular / Kubernetes e afins. Ele possui certificações Microsoft MCTS (6x), MCPD em Web, ITIL v3 e CKAD (Kubernetes) . Thiago é apaixonado por tecnologia, entusiasta de TI desde a infância bem como amante de aprendizado contínuo.

Deixe um comentário